Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
附加新值的Java属性文件_Java_Properties - Fatal编程技术网

附加新值的Java属性文件

附加新值的Java属性文件,java,properties,Java,Properties,我有一个应用程序,它实现了一个JTree,并默认使用一个java属性文件填充该树;节点是键,值是节点的内容。该应用程序被设计为动态的,因此实现了一个JButton和JTextField来接收新值,并将值放入属性文件中的exists键中 例如,我在sample.properties文件中将下面的一行作为默认值 节点=猫、狗、老鼠 使用JTextField和JButton I输入“rabbit”附加到节点,如下所示: 节点=猫、狗、老鼠、兔子 我已经实现了JTextField和JButton并让它们

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

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

节点=猫、狗、老鼠

使用JTextField和JButton I输入“rabbit”附加到节点,如下所示:

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


我已经实现了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();