Как обновить файл свойств? - PullRequest
1 голос
/ 26 августа 2011

Я использую метод classLoader для загрузки файла свойств.Используя это, я могу получить значения свойств, но теперь я хочу обновить значения некоторых свойств, и я не могу это сделать.Пожалуйста помоги.Вот код:

InputStream inputStream = this.getClass (). GetClassLoader () .getResourceAsStream ("PublishDate.properties");

try {
    Properties properties = new Properties();

    try {
       // load the inputStream using the Properties
       properties.load(inputStream);
    }
    catch(Exception e) {
       e.printStackTrace();
    }
    // get the value of the property
    String propValue = properties.getProperty("lastHtlProcessPublishDate");

здесь, в propValue я получаюправильное значение из файла.Я обновляю это так:

properties.put("lastHtlProcessPublishDate",dateFormatter.format(new Date()));   
properties.store(new FileOutputStream("PublishDate.properties"), null);

При использовании этого значения обновление не обновляется, но когда я указываю полный путь для PublishDate.properties, оно работает.Но я не хочу указывать полный путь, поскольку путь является динамическим.Кто-нибудь знает, как это сделать, используя какой-то относительный путь.Пожалуйста, сообщите мне об этом.

Ответы [ 2 ]

4 голосов
/ 26 августа 2011

Используйте API настройки Apache Commons для обработки файла свойств.Это облегчит чтение и запись в файлы свойств (любые файлы конфигурации) ... и ваша жизнь станет проще.

РЕДАКТИРОВАТЬ

  • Загрузить бинарный файл конфигурации общего пользования здесь
  • Поместите это где-нибудь в вашем classpath (lib каталог, если таковой имеется в вашем проекте)
  • Запустите чистую сборку вашего проекта, чтобы Eclipse (я предполагаю) мог подобратьновые классы
  • Импортируйте необходимые классы для вашего действия и код.: D
3 голосов
/ 26 августа 2011

Возможно, вы захотите попробовать commons-configuration и использовать PropertiesConfiguration. Это должно удовлетворить все ваши потребности.

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