How to get list of properties using apache.commons

大城市里の小女人 提交于 2019-12-05 21:08:09

问题


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


回答1:


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



回答2:


Properties prop = new Properties();
prop.load(new FileInputStream("prop.properties"));
Set<Map.Entry<Object, Object>> set = prop.entrySet();
List<Object> list = new ArrayList<>();
for (Map.Entry<Object, Object> entry : prop.entrySet())
{
   list.add(entry.getKey());
}
System.out.println(list);

Using Apache Commons version <2.1:

Configuration config = new PropertiesConfiguration("prop.properties");
List<String> list = new ArrayList<>();
Iterator<String> keys = config.getKeys();
while(keys.hasNext()){
    String key = (String) keys.next();
    list.add(key);
}

Edited for Apache Commons Version 2.1:

List<String> list = new ArrayList<>();
Parameters params = new Parameters();
FileBasedConfigurationBuilder<FileBasedConfiguration> builder =
    new FileBasedConfigurationBuilder<FileBasedConfiguration>
    (PropertiesConfiguration.class)
    .configure(params.properties()
    .setFileName("prop.properties"));
try
{
    Configuration config = builder.getConfiguration();
    Iterator<String> keys = config.getKeys();
    while(keys.hasNext()){
      String key = (String) keys.next();
      list.add(key);
    }
}
catch(ConfigurationException cex)
{
    // handle exception here
}



回答3:


You can use getKeys().

It returns an Iterator<String> on all the keys in the properties file.



来源:https://stackoverflow.com/questions/16168841/how-to-get-list-of-properties-using-apache-commons

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!