java - 读取.properties文件并将其存储在属性对象中

时间:2016-05-04 12:01:49

标签: java swing properties-file

如标题中所述,我必须在java中读取.properties文件并将其存储在Properties对象中。我使用java swing中的jFileChooser来获取实际工作的文件,然后我将文件作为调用参数传递给新窗口,然后我使用load()方法将其存储在{{{ 1}}对象,但我得到Properties错误。我希望我很清楚,试图解释它。

这是代码:

java.lang.NullPointerException

这是我将文件传递到其他窗口的方式:

    public void actionPerformed(ActionEvent e3) { //when button is pressed
            JFileChooser fc2 = new JFileChooser (new File("C:\\Users\\Ciurga\\workspace\\PropertiesManager"));
            fc2.setDialogTitle("Load Default Values File");
            fc2.setFileFilter(new FileTypeFilter(".properties", "Properties File"));
            int result = fc2.showOpenDialog(null);
            if(result == JFileChooser.APPROVE_OPTION){
                df = fc2.getSelectedFile(); //getting selected file and storing it in "df" which will be passed as calling argument     
                defaultNameTextField.setText(df.getName());
            }
        }

这就是我尝试将其存储在public void actionPerformed(ActionEvent e1) { FormWindow w1 = new FormWindow (df, lf); //when button is pressed, create new window passing the files i got with jFileChooser } 对象中的方式:

Properties

谢谢大家,正如你所说,我只需要初始化它,现在它似乎工作正常,这是一个简单的错误,但我实际上是java的初学者。 这是我改变的:

private static Properties propDef;
private static Properties propLim; 

private void run(File def, File lim) {
    try {
        propDef.load(new FileInputStream(def));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        propLim.load(new FileInputStream(lim));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println(propDef.getProperty("name"));

}

2 个答案:

答案 0 :(得分:0)

你从未初始化propDef,这就是为什么你得到NullPointerException。

如果你做了初始化,请提供代码!

答案 1 :(得分:0)

可能您的propDefpropLim为空,当您致电propDef.load(new FileInputStream(def));时,您会获得NPE,因为load方法是实例方法。