2011-07-14 38 views
4

是否可以从Java文件读取不同的属性组,而无需手动处理?从文件读取Java属性组

“手动”我的意思是逐行读取文件,检测属性组的开始位置,然后提取相应的键值对。实际上,这意味着重新创建(大部分)Properties.load()方法构成的轮子。

本质上,我正在寻找的是从单个文件中读取多组属性的简单方法,每个组都可以识别,以便它可以加载到它自己的Java属性对象中。

+0

你的意思是像一个INI文件吗?执行此操作的常用方法是为您的属性使用前缀group1.prop1 = ... group1.prop2 = ... group2.prop1 = ...请参阅log4j属性。 –

+0

这似乎是一种适当的标记语言,如XML最适合。 –

回答

7

我想要使用java.util.Properties您可以使用前缀。在属性文件:

group1.key1=valgroup1key1 
group2.key1=valgroup2key1 
group2.key2=valgroup2key2 

和阅读这样的:

class PrefixedProperty extends Properties { 
    public String getProperty(String group, String key) { 
     return getProperty(group + '.' + key); 
    } 
} 

和使用:

/* loading, initialization like for java.util.Properties */ 
String val = prefixedProperty.getProperty("group1", "key1"); 

您还可以使用ini4j与Windows INI文件。

另一个更好的方法是使用自己的自定义结构化文件(例如XML)。