2014-05-28 3 views
1

Чтобы загрузить файл свойств из пути к классам, мы можем просто сделать:Как сохранить файл свойств Java в classpath?

InputStream inputStream = CommonUtils.class.getClassLoader().getResourceAsStream("com/abc/resources/config.properties"); 
prop.load(inputStream); 

После указанной выше стадии, все свойства загружены правильно. Но как я могу изменить свойство и сохранить его обратно в тот же файл на лету? (Ниже не работает)

OutputStream outputStream = new FileOutputStream("com/abc/resources/config.properties"); 
prop.setProperty(key, value); 
prop.store(outputStream, null); 
+0

Что вы подразумеваете под "не работает"? Создан ли файл, но он пуст? Вы получаете исключение? –

+0

Вы хотите обновить файл jar, содержащий файл свойств? –

+0

Файл находится в проекте, как показывает первая часть, поэтому я использую 'class.getClassLoader()' для поиска файла. Но если я что-то изменил, и я хочу написать его обратно, как я могу это сделать? Благодарю. – Kevin

ответ

1

Вы не можете писать ресурс, загруженный таким образом.

Я бы рекомендовал, чтобы при первом запуске приложения он загружал свойства по умолчанию из файла jar и сохранялся в хорошо известном месте. Затем, когда приложение запускается, он считывает свойства из этого местоположения. This stack overflow question имеет более подробную информацию о том, как и где упорствовать.

+0

Собственно, это тоже мое решение ... но мне было интересно, есть ли лучший способ, кроме создания копии исходного файла свойств. Благодарю. – Kevin

Смежные вопросы