Как получить список записей в файле свойств с помощью конфигурации Apache Commons?

В моем проекте у нас есть файл свойств, в котором есть несколько записей, как показано ниже:

#Data key entries
datakey001
datakey321
datakey451
someotherkey

На самом деле это не пара «ключ-значение», а список ключей. Используя java.util.Properties, я смог получить это с помощью Properties.stringPropertyNames().

Сейчас мы переходим на конфигурацию Apache Commons, и я не смог найти в этой библиотеке никакой функции, позволяющей получить все эти ключи, как я раньше использовал java.util.Properties.

Есть ли способ в конфигурации apache commons, с помощью которого я могу получить все эти ключи, не меняя структуру файла свойств?

РЕДАКТИРОВАТЬ: Я пробовал использовать Configuration.getKeys(), как показано ниже, но результат пуст.

 Configuration propertiesConfig = new PropertiesConfiguration("C:\\proj\\myprops.properties");
 Iterator<String> it = propertiesConfig.getKeys();
 while(it.hasNext()) {
     System.out.println(it.next());
 }

person jacobcs    schedule 19.08.2015    source источник


Ответы (1)


Вы можете использовать Configuration.getKeys() метод для этого.

person Gergely Bacso    schedule 19.08.2015
comment
Спасибо Гергей! но это то, что я пробовал и забыл упомянуть в вопросе. Когда я использую Configuration.getKeys (), в этом случае я получаю пустой итератор. Я обновлю вопрос сейчас. - person jacobcs; 19.08.2015
comment
Это странно. Просто в целях тестирования, не могли бы вы добавить несколько знаков = в конец ваших строк, чтобы увидеть, помогает ли это? Возможно, ваши бесполезные записи конфигурации рассматриваются как неверно отформатированные входные данные. - person Gergely Bacso; 19.08.2015
comment
Да, когда я добавляю знак =, я могу получить ключи. Похоже, что записи обрабатываются как неправильно отформатированные входные данные. Любые идеи / обходные пути, которые я могу попробовать на уровне кода? - person jacobcs; 19.08.2015
comment
Не знаю, что делать на уровне кода. Честно говоря, я бы просто повсюду добавил эти знаки =. Это одноминутная работа в linux: sed 's / $ / = / g' myprops.properties или в любом модном текстовом редакторе Windows. - person Gergely Bacso; 19.08.2015