Как сохранить файл свойств Java в путь к классам?

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

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);

person Kevin    schedule 28.05.2014    source источник
comment
Что вы имеете в виду под не работает? Файл создан, но пустой? Вы получаете исключение?   -  person Greg Case    schedule 28.05.2014
comment
Вы имеете в виду, как обновить файл jar, содержащий файл свойств?   -  person Eng.Fouad    schedule 28.05.2014
comment
Файл находится в проекте, как показано в первой части, поэтому я использую class.getClassLoader() для поиска файла. Но если я что-то изменю и захочу написать обратно, как я могу это сделать? Спасибо.   -  person Kevin    schedule 28.05.2014


Ответы (1)


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

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

person ditkin    schedule 28.05.2014
comment
На самом деле, это тоже мое решение... но мне было интересно, есть ли лучший способ, кроме создания копии исходного файла свойств. Спасибо. - person Kevin; 28.05.2014