小编典典

JAVA .properties文件

java

有一个小问题,我已经创建了一个属性文件:

config.properties位于../resource/config.properties中

这是当前文件:

destinationPDF=D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/pdf/
destination="D:/Documents/NetBeansProjects/printing~subversion/fileupload/Uploaded/
fileList =D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/Directory Files/directoryFiles.txt

我已完成属性文件的确定吗?

我也想访问此文件并将变量加载到类中

我努力了

public void loadProp() {
    try {
        prop.load(new FileInputStream("../resources/config.properties"));
        System.out.println(prop.getProperty("destinationPDF"));
        System.out.println(prop.getProperty("destination"));
        System.out.println(prop.getProperty("fileList"));

    } catch (IOException ex) {
        ex.printStackTrace();
    }
}

但是现在该类将无法编译,因为例如找不到变量的目的地,那么如何从文件中加载变量,我还需要在该类中清除变量吗?

如果这些是愚蠢的问题,对不起,第一次使用属性!

如果我像通常那样放入变量,我不会收到此错误

private String destinationPDF = "D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/pdf/"; //USE ON TORNADO//"D:/My Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/pdf/";//USE ON PREDATOR

编辑:

现在有

private Properties configProp = new Properties();

public void loadProps() {
    InputStream in = this.getClass().getClassLoader().getResourceAsStream("../resources/config.properties");
    try {
        configProp.load(in);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

编辑2:

public void loadProp() {
    InputStream in = this.getClass().getClassLoader().getResourceAsStream("../resources/config.properties");
    try {
        prop.load(in);
        System.out.println(prop.getProperty("destinationPDF"));
        System.out.println(prop.getProperty("destination"));
        System.out.println(prop.getProperty("fileList"));
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Properties prop = new Properties();
private String destinationPDF = prop.getProperty("destinationPDF");
public String destination = prop.getProperty("destination");

它正在工作,没有错误,但destination和destinationPDF正在传递空值


阅读 234

收藏
2020-11-30

共1个答案

小编典典

您似乎误解了什么是属性文件。它们只是数据。它们不包含Java代码,也不用于声明变量。要获取与destinationPDF属性文件中的键关联的值,您需要调用

String destinationPDF = prop.getProperty("destinationPDF");

在初始化prop变量并使用加载文件后prop.load(new FileInputStream(...))。然后,您将获得一个使用键值初始化的变量。

注意:请遵守Java命名约定:变量以小写字母开头。

2020-11-30