附加新值的 Java 属性文件

标签 java properties

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

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

节点=猫,狗,老鼠

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

节点=猫,狗,老鼠,兔子

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

最佳答案

只是 FileWriter

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

更新

Properties 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

关于附加新值的 Java 属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21337732/

相关文章:

java - 如何从另一个类执行一个类的方法?

java - Vaadin 8 的数字输入

java - 如何使用Java程序访问Linux全局变量

PHP 类和构造函数内的静态属性

.net - 为非常量类型的属性设置默认值?

java - 每次在多对多关系中插入新数据时,以前的数据都会被删除

java - 如何将 lib Linear 与 weka gui 一起使用?

msbuild - 如何在 TransformXml 任务中使用 MSbuild 属性?

c# - 实例化对象中的所有属性和子属性(C#.net)

c# - 使用 EntityFramework 和 LinqKit 查询接口(interface)属性