Nikitin Mikhail Nikitin Mikhail - 3 months ago 5
Java Question

How to get list of properties using apache.commons

I need to get the list of properties which are in the .properties file. For example, if have the following .properties file:

users.admin.keywords = admin
users.admin.regexps = test-5,test-7
users.admin.rules = users.admin.keywords,users.admin.regexps

users.root.keywords = newKeyWordq
users.root.regexps = asdasd,\u0432[\u044By][\u0448s]\u043B\u0438\u0442[\u0435e]
users.root.rules = users.root.keywords,users.root.regexps,rules.creditcards

users.guest.keywords = guest
users.guest.regexps = *
users.guest.rules = users.guest.keywords,users.guest.regexps,rules.creditcards

rules.cc.creditcards = 1234123412341234,11231123123123123,ca
rules.common.regexps = pas
rules.common.keywords = asd


And as a result I'd like to get an ArrayList which consists of names of fields like this:
users.admin.keywords, users.admin.regexps, users.admin.rules
and so on. And as you have noticed, I need to do this using apache.commons.config

Answer

You can use as below:

Configuration configuration = new PropertiesConfiguration(filename);
Iterator<String> keys = configuration.getKeys();
List<String> keyList = new ArrayList<String>();
while(keys.hasNext()) {
    keyList.add(keys.next());
}