首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用apache.commons获取属性列表

如何使用apache.commons获取属性列表
EN

Stack Overflow用户
提问于 2013-04-23 20:01:15
回答 3查看 27.6K关注 0票数 12

我需要获取.properties文件中的属性列表。例如,如果有以下.properties文件:

代码语言:javascript
复制
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

因此,我希望得到一个由如下字段名称组成的ArrayList:users.admin.keywords, users.admin.regexps, users.admin.rules等等。正如您已经注意到的,我需要使用apache.commons.config来完成此操作

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-23 20:12:29

您可以按如下方式使用:

代码语言:javascript
复制
Configuration configuration = new PropertiesConfiguration(filename);
Iterator<String> keys = configuration.getKeys();
List<String> keyList = new ArrayList<String>();
while(keys.hasNext()) {
    keyList.add(keys.next());
}
票数 17
EN

Stack Overflow用户

发布于 2013-04-23 20:11:18

代码语言:javascript
复制
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);

使用版本低于2.1的Apache Commons:

代码语言:javascript
复制
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);
}

为Apache Commons版本2.1编辑:

代码语言:javascript
复制
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
}
票数 5
EN

Stack Overflow用户

发布于 2013-04-23 20:05:03

您可以使用getKeys()

它返回属性文件中所有键的Iterator<String>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16168841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档