Java 使用相同键创建阵列/列表的配置属性
我想将html选择框的源代码存储在配置文件中。它们包含一个不经常更改(但偶尔更改)的长字符串:Java 使用相同键创建阵列/列表的配置属性,java,arrays,configuration,properties,Java,Arrays,Configuration,Properties,我想将html选择框的源代码存储在配置文件中。它们包含一个不经常更改(但偶尔更改)的长字符串: Lorem ipsum sit amet 1号 Lorem ipsum sit amet 2号 Lorem ipsum sit amet 3号 Lorem ipsum sit amet第4号 我已经使用了commons配置。是否可以在某种配置对象(XMLConfiguration、HierarchycalConfiguration等)中使用相同的属性键来存储它们?我的意思是能够使用类似于(或列表)
- Lorem ipsum sit amet 1号
- Lorem ipsum sit amet 2号
- Lorem ipsum sit amet 3号
- Lorem ipsum sit amet第4号
// reject.reason = Lorem ipsum sit amet nr. 1
// reject.reason = Lorem ipsum sit amet nr. 2
// reject.reason = Lorem ipsum sit amet nr. 3
// reject.reason = Lorem ipsum sit amet nr. 4
config.getStringArray(reject.reason)
我不想让他们在同一条线上分开,因为,第一,原因很长,第二,原因很多(>10)
我也不想将它们存储在enum中,b/c不重新编译代码就不可能更改它们
有关如何实现此目的的任何提示?您可以将它们存储在.properties文件中,并命名为
key.0=line0
key.1=line1
key.2=line2
然后在代码中使用for循环遍历属性,查找“key.”+i
,直到返回空值
我以前做过这项工作来枚举和配置com端口,效果很好。我觉得您的示例很好。如果使用同一键指定值列表,则这些值将被视为列表,并且以下操作应有效:
reject.reason = Lorem ipsum sit amet nr. 1
reject.reason = Lorem ipsum sit amet nr. 2
reject.reason = Lorem ipsum sit amet nr. 3
reject.reason = Lorem ipsum sit amet nr. 4
在Java代码中:
PropertiesConfiguration config = new PropertiesConfiguration("gui.properties");
String[] reasons = config.getStringArray("reject.reason");
这就是我写的:)你甚至可以将标准配置对象包装在你自己的包装器中,这样做是为了你。对,这也是我的第一个想法。我简直不敢相信这个用例还没有现成的解决方案。此外,我觉得它已经由commons配置提供,我只是找不到关于如何获得它的清晰信息。我会用我的直觉试试,现在就用上面提到的。太好了,谢谢,多宝麻!您知道commons配置是否支持UTF-8编码的资源包吗?