我有一个实现JTree的应用程序,并使用java属性文件填充树作为默认值;节点是键,值是节点的内容。应用程序设计为动态的,因此实现JButton和JTextField以接收新值并将值放在属性文件中的exists键中。
例如,我将下面的行作为sample.properties文件中的默认值
节点=猫,狗,小鼠
并使用JTextField和JButton我输入“rabbit”附加到节点,看起来像:
节点=猫,狗,小鼠,兔
我已经实现了JTextField和JButton并让它们正常工作,但我似乎无法找到一种将新值附加到属性文件中现有键的好方法。
答案 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();