Как сохранить значения в свойствах без удаления неизмененных ключей? - PullRequest
5 голосов
/ 17 февраля 2012

Итак, если мы сделаем так:

 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 ]

4 голосов
/ 17 февраля 2012

Загрузить свойства из этого файла перед его изменением.Другими словами, замените

Properties props = new Properties();

на

Properties props = Properties.load(new FileInputStream(Store.class.getResource("my.properties").getFile())); 
1 голос
/ 17 февраля 2012

Самое простое решение - использовать

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

Если вы не хотите продолжать добавлять файл, вам нужно прочитать все существующие значения и переписать их.К сожалению, свойства не сохраняют порядок или комментарии, пустые строки и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...