Сохранение изменений в файле .properties, который был прочитан с помощью getClass (). GetResourceAsStream - PullRequest
3 голосов
/ 08 апреля 2011

Я пишу Java-приложение, которое читает свойства из файла .properties. Поскольку я не знаю абсолютный путь к файлу .properties, поскольку он зависит от среды, в которой будет выполняться приложение в будущем, я должен загрузить его с помощью "getClass (). GetResourceAsStream":

Properties props = new Properties();
props.load(getClass().getResourceAsStream("test.properties"));
message = props.getProperty("testdata");

Это работает как ожидалось. Теперь я хочу изменить значение testdata в файле. Но я не могу открыть Outputstream для записи, потому что я до сих пор не знаю путь к файлу .properties.

props.setProperty("testdata", "foooo");
props.store(new FileOutputStream("?????"), null);

Есть ли способ получить путь к файлу или я могу как-то использовать установленный объект Properties? Приветствуются любые идеи, которые позволяют мне изменить файл .properties.

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011

Вы можете получить URL, используя getResource() вместо getResourceAsStream()

Затем вы можете использовать URL для чтения и записи в файл свойств.

File myProps = new File(myUrl.toURI());
FileInputStream in = new FileInputStream(myProps); 

И т. Д.

0 голосов
/ 08 апреля 2011

Класс Properties включает метод store, который можно использовать для сохранения свойств обратно в поток, который был прочитан в getClass (). GetResourceAsStream ("test.properties").

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