如何在不删除未修改的键的情况下将值保存到属性?

时间:2012-02-17 10:49:00

标签: java properties

所以,如果我们这样做:

 Properties props = new Properties();
 OutputStream osr = new FileOutputStream(Store.class.getResource("my.properties").getFile());

 props.setProperty("wallboard_text_rgb", "aaa");
 props.setProperty("wallboard_back_rgb", "bbb");

 props.store(osr, "");

现有属性中的其他键将被删除,如何避免?

2 个答案:

答案 0 :(得分:4)

在修改之前从该文件加载属性。换句话说,替换

Properties props = new Properties();

Properties props = Properties.load(new FileInputStream(Store.class.getResource("my.properties").getFile())); 

答案 1 :(得分:1)

最简单的解决方案是使用

String filename = Store.class.getResource("my.properties").getFile();
OutputStream osr = new FileOutputStream(filename, true); // append.

如果您不想继续追加该文件,则必须读取所有现有值并重新编写它们。不幸的是,属性不会保留顺序,或注释,空白行等。