Java Apache commons配置读取格式为a的属性。<;否>;。B
我有一个属性文件,上面写着Java Apache commons配置读取格式为a的属性。<;否>;。B,java,configuration-files,apache-commons,Java,Configuration Files,Apache Commons,我有一个属性文件,上面写着 window.1.height=100 window.1.width=80 window.2.height=50 window.2.width=30 window.3.height=150 window.3.width=100 我正在使用属性配置类并阅读属性。 如何知道属性中的窗口数。有模式搜索吗?我通常使用 int i = 0; String val; for(;;) { val = props.get("foo" + i); if (null ==
window.1.height=100
window.1.width=80
window.2.height=50
window.2.width=30
window.3.height=150
window.3.width=100
我正在使用属性配置
类并阅读属性。
如何知道属性中的窗口数。有模式搜索吗?我通常使用
int i = 0;
String val;
for(;;) {
val = props.get("foo" + i);
if (null == val) {
break;
}
//process val
}
这就限制了计数器值必须是连续的。如果您对属性文件本身有任何控制权,您可以做一些事情。如果你被锁定在这种模式中,我不相信你能做什么 但是,如果您没有被锁定在该格式中,以下是一些解决方案: XML配置 将属性文件更改为XML文件格式。大概是这样的:
<windows>
<window>
<width>80</width>
<height>100</height>
</window>
<window>
<width>30</width>
<height>50</height>
</window>
<window>
<width>100</width>
<height>150</height>
</window>
</windows>
window.height=100
window.width=80
window.height=50
window.width=30
window.height=150
window.width=100
获取窗口数
属性配置
您的另一个选项(仍然涉及属性文件)有点做作。您的属性文件将更改为如下所示:
<windows>
<window>
<width>80</width>
<height>100</height>
</window>
<window>
<width>30</width>
<height>50</height>
</window>
<window>
<width>100</width>
<height>150</height>
</window>
</windows>
window.height=100
window.width=80
window.height=50
window.width=30
window.height=150
window.width=100
然后获取您要呼叫的窗口数
config.getList("window.height").size();
但是,使用此方法,您必须更改检索值的方式。例如,为了获得第二个窗口的宽度和高度,可以使用以下方法:
config.getInteger("window.width(1)");
config.getInteger("window.height(1)");
通过使用parens,您可以使用基于零的标记访问列表中的单个元素。理解起来有点困难,但它会起作用。api中已经有了它。请参见这是可行的,但我想知道是否可以从commons配置本身确定长度。最终,我不得不循环思考,我还没有找到一种方法来做到这一点,所以我将观察是否有其他人也有更好的运气。