所以,如果我们这样做:
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, "");
现有属性中的其他键将被删除,如何避免?
答案 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.
如果您不想继续追加该文件,则必须读取所有现有值并重新编写它们。不幸的是,属性不会保留顺序,或注释,空白行等。