在java中使用configuration2读取逗号分隔的属性

前端之家收集整理的这篇文章主要介绍了在java中使用configuration2读取逗号分隔的属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个属性
  1. move.patternfile.include = *1a.txt,*2a.txt

我正在尝试使用Apache commons configuration2将其放入列表中.

我的代码是:

  1. Configurations configs = new Configurations();
  2. AbstractConfiguration config = configs.properties(new File(fileName));
  3. config.setListDelimiterHandler(new DefaultListDelimiterHandler(','));

我可以阅读所有其他属性,但我想要的仍然是1个大小的列表.

这是检索值的命令:

  1. List<String> linclude = configuration.getList(String.class,"patternfile.include");

你能帮帮忙吗?

解决方法

基于 this,似乎必须在从文件读取属性之前设置分隔符.下面的代码在我运行它时起作用,但会生成警告.
  1. Parameters params = new Parameters();
  2. FileBasedConfigurationBuilder<PropertiesConfiguration> builder =
  3. new FileBasedConfigurationBuilder<PropertiesConfiguration>(
  4. PropertiesConfiguration.class).configure(params.fileBased()
  5. .setListDelimiterHandler(new DefaultListDelimiterHandler(','))
  6. .setFile(new File("test.properties")));
  7. PropertiesConfiguration config = builder.getConfiguration();
  8.  
  9. List<String> linclude = config.getList(String.class,"patternfile.include");
  10.  
  11. System.out.println(linclude.size());
  12. for(String item: linclude){
  13. System.out.println(item);
  14. }

test.properties

patternfile.include = * 1a.txt,* 2a.txt

产量

2

* 1a.txt

* 2a.txt

这是我运行时看到的警告:

  1. Jun 26,2016 2:12:17 AM org.apache.commons.beanutils.FluentPropertyBeanIntrospector introspect
  2. WARNING: Error when creating PropertyDescriptor for public final void org.apache.commons.configuration2.AbstractConfiguration.setProperty(java.lang.String,java.lang.Object)! Ignoring this property.
  3. java.beans.IntrospectionException: bad write method arg count: public final void org.apache.commons.configuration2.AbstractConfiguration.setProperty(java.lang.String,java.lang.Object)
  4. at java.beans.PropertyDescriptor.findPropertyType(Unknown Source)
  5. at java.beans.PropertyDescriptor.setWriteMethod(Unknown Source)
  6. at java.beans.PropertyDescriptor.<init>(Unknown Source)
  7. at org.apache.commons.beanutils.FluentPropertyBeanIntrospector.createFluentPropertyDescritor(FluentPropertyBeanIntrospector.java:177)
  8. at org.apache.commons.beanutils.FluentPropertyBeanIntrospector.introspect(FluentPropertyBeanIntrospector.java:140)
  9. at org.apache.commons.beanutils.PropertyUtilsBean.fetchIntrospectionData(PropertyUtilsBean.java:2234)
  10. at org.apache.commons.beanutils.PropertyUtilsBean.getIntrospectionData(PropertyUtilsBean.java:2215)
  11. at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:950)
  12. at org.apache.commons.beanutils.PropertyUtilsBean.isWriteable(PropertyUtilsBean.java:1466)
  13. at org.apache.commons.configuration2.beanutils.BeanHelper.isPropertyWriteable(BeanHelper.java:521)
  14. at org.apache.commons.configuration2.beanutils.BeanHelper.initProperty(BeanHelper.java:357)
  15. at org.apache.commons.configuration2.beanutils.BeanHelper.initBeanProperties(BeanHelper.java:273)
  16. at org.apache.commons.configuration2.beanutils.BeanHelper.initBean(BeanHelper.java:192)
  17. at org.apache.commons.configuration2.beanutils.BeanHelper$BeanCreationContextImpl.initBean(BeanHelper.java:669)
  18. at org.apache.commons.configuration2.beanutils.Defaultbeanfactory.initBeanInstance(Defaultbeanfactory.java:162)
  19. at org.apache.commons.configuration2.beanutils.Defaultbeanfactory.createBean(Defaultbeanfactory.java:116)
  20. at org.apache.commons.configuration2.beanutils.BeanHelper.createBean(BeanHelper.java:459)
  21. at org.apache.commons.configuration2.beanutils.BeanHelper.createBean(BeanHelper.java:479)
  22. at org.apache.commons.configuration2.beanutils.BeanHelper.createBean(BeanHelper.java:492)
  23. at org.apache.commons.configuration2.builder.BasicConfigurationBuilder.createResultInstance(BasicConfigurationBuilder.java:447)
  24. at org.apache.commons.configuration2.builder.BasicConfigurationBuilder.createResult(BasicConfigurationBuilder.java:417)
  25. at org.apache.commons.configuration2.builder.BasicConfigurationBuilder.getConfiguration(BasicConfigurationBuilder.java:285)
  26. at main.Main.main(Main.java:25)

我发现有关此警告消息的this link.

猜你在找的Java相关文章