附加新值的Java属性文件
我有一个应用程序,它实现了一个JTree,并默认使用一个java属性文件填充该树;节点是键,值是节点的内容。该应用程序被设计为动态的,因此实现了一个JButton和JTextField来接收新值,并将值放入属性文件中的exists键中 例如,我在sample.properties文件中将下面的一行作为默认值 节点=猫、狗、老鼠 使用JTextField和JButton I输入“rabbit”附加到节点,如下所示: 节点=猫、狗、老鼠、兔子附加新值的Java属性文件,java,properties,Java,Properties,我有一个应用程序,它实现了一个JTree,并默认使用一个java属性文件填充该树;节点是键,值是节点的内容。该应用程序被设计为动态的,因此实现了一个JButton和JTextField来接收新值,并将值放入属性文件中的exists键中 例如,我在sample.properties文件中将下面的一行作为默认值 节点=猫、狗、老鼠 使用JTextField和JButton I输入“rabbit”附加到节点,如下所示: 节点=猫、狗、老鼠、兔子 我已经实现了JTextField和JButton并让它们
我已经实现了JTextField和JButton并让它们工作,但我似乎找不到一个好方法将新值附加到属性文件中的现有键上。just
FileWriter
FileWriter fileWritter = new FileWriter("example.properties", true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.append("PROPERTES_YOUR_KEY=PROPERTES_YOUR_VALUE");
bufferWritter.close();
更新
属性API不支持,我不确定您为什么需要此功能。您可以尝试以下操作: 例如:属性
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
我会看着你。
它有非常具体的例子来满足你的要求
尝试:
我只是尝试了一下,它似乎没有附加到现有的key=value对中。我想要的是将新值附加到现有的key=value对中,因此如果我想在现有的“key=value1”中添加“value2”,它将附加到现有的key中,看起来像“key=value1,value2”嘿,谢谢,这解决了我的问题,起初,BufferedWriter只是不断将整个属性文件附加到自身上,但使用FileOutputStream它会重写它,这就是我所需要的编辑似乎与Java属性相似,只是它实际上在一个键中满足多个值,但我认为更改所有内容以适应这一点对我的时间没有好处
import org.apache.commons.configuration.PropertiesConfiguration;
PropertiesConfiguration config = new PropertiesConfiguration(
"config.properties");
config.setProperty("my.property", somevalue);
config.save();