在Ruby中,我有一个 sample.yml 文件,如下所示,
1_Group1:
path:asdf
filename:zxcv
2_Group2:
path:qwer
filename:poiu
etc etc............
现在我需要 Example.properties 文件Java,它应包含上述数据。
使用Java,我想阅读 Example.properties 文件。
然后需要根据组的数量迭代内容并获得相应的“路径”和“文件名”值。
例如:如果有5个组... Group1,Group2 .... Group5 然后我需要迭代
for(int i=0; i< noofgroups(5);i++){
........................
String slave = aaa.getString("path");
aaa.getString("filename");
}
像这样我需要获取每个路径和文件名。
现在我有 Example.properties 作为follws,
path:asdf
filename:zxcv
它正在工作(我可以阅读并获取值)
但我需要将密钥作为“路径”和“文件名”。所以我需要将它们分组。
答案 0 :(得分:1)
如果您想使用yaml
格式,可以找到yamlbeans
您可以像这样使用它:
YamlReader reader = new YamlReader(new FileReader("sample.yml"));
Map map = (Map)reader.read();
System.out.println(map.get("1_Group1"));
答案 1 :(得分:1)
有很多方法可以解决这个问题;最自然的可能是使用自然分层格式,如YAML,JSON或XML。
另一种选择是使用Commons Configuration hierarchical configs之类的hierarchical INI style技术之一。
如果你想使用“纯”属性文件,我建议你只需阅读你的属性,在句点上拆分属性名称,然后存储到地图或类中,这样就可以了:
1_Group1.path=asdf
1_Group1.filename:zxcv
2_Group2.path=qwer
2_Group2.filename=poiu
答案 2 :(得分:1)
您可以通过以下方式使用java.utils.Properties
:
public static void loadPropertiesAndParse() {
Properties props = new Properties();
String propsFilename = "path_to_props_file";
FileInputStream in = new FileInputStream(propsFilename);
props.load(in);
Enumeration en = props.keys();
while (en.hasMoreElements()) {
String tmpValue = (String) en.nextElement();
String path = tmpValue.substring(0, tmpValue.lastIndexOf(File.separator)); // Get the path
String filename = tmpValue.substring(tmpValue.lastIndexOf(File.separator) + 1, tmpValue.length()); // Get the filename
}
}
您的properties
文件将如下所示:
key_1=path_with_file_1
key_2=path_with_file_2