Java属性文件追加新值

时间:2014-01-24 16:33:48

标签: java properties

我有一个实现JTree的应用程序,并使用java属性文件填充树作为默认值;节点是键,值是节点的内容。应用程序设计为动态的,因此实现JButton和JTextField以接收新值并将值放在属性文件中的exists键中。

例如,我将下面的行作为sample.properties文件中的默认值

节点=猫,狗,小鼠

并使用JTextField和JButton我输入“rabbit”附加到节点,看起来像:

节点=猫,狗,小鼠,兔

我已经实现了JTextField和JButton并让它们正常工作,但我似乎无法找到一种将新值附加到属性文件中现有键的好方法。

2 个答案:

答案 0 :(得分:3)

只需FileWriter

FileWriter fileWritter = new FileWriter("example.properties", true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.append("PROPERTES_YOUR_KEY=PROPERTES_YOUR_VALUE");
bufferWritter.close();

更新

属性API不支持,我不确定为什么需要此功能。
你可以尝试如下:

example.properties

PROPERTIES_KEY_3=PROPERTIES_VALUE_3
PROPERTIES_KEY_2=PROPERTIES_VALUE_2
PROPERTIES_KEY_1=PROPERTIES_VALUE_1

程序

Properties pop = new Properties();
pop.load(new FileInputStream("example.properties"));
pop.put("PROPERTIES_KEY_3", "OVERWRITE_VALUE");
FileOutputStream output = new FileOutputStream("example.properties");
pop.store(output, "This is overwrite file");

输出

PROPERTIES_KEY_3=OVERWRITE_VALUE
PROPERTIES_KEY_2=PROPERTIES_VALUE_2
PROPERTIES_KEY_1=PROPERTIES_VALUE_1

答案 1 :(得分:1)

我会看Apache Commons Configuration。 它有非常具体的例子可以满足您的要求。

尝试:

import org.apache.commons.configuration.PropertiesConfiguration;

PropertiesConfiguration config = new PropertiesConfiguration(
    "config.properties");

config.setProperty("my.property", somevalue);

config.save();