0

在 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如下,

   path:asdf
   filename:zxcv

它正在工作(我可以读取并获取值)

但我需要有可能作为“路径”和“文件名称”的键。所以我需要将它们分组。

4

3 回答 3

1

如果你想使用yaml格式,你可以找到一个yamlbeans

你可以像这样使用它:

YamlReader reader = new YamlReader(new FileReader("sample.yml"));
Map map = (Map)reader.read();
System.out.println(map.get("1_Group1"));
于 2013-01-31T19:29:41.443 回答
1

有很多方法可以解决这个问题;最自然的可能是使用自然分层的格式,如 YAML、JSON 或 XML。

另一种选择是使用Commons Configuration 分层配置技术之一,例如分层 INI 样式

如果您想使用“纯”属性文件,我建议您只读取您的属性,将属性名称拆分为句点,然后存储到地图或类中,这样您就可以:

1_Group1.path=asdf
1_Group1.filename:zxcv

2_Group2.path=qwer
2_Group2.filename=poiu
于 2013-01-31T19:39:59.817 回答
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
于 2013-01-31T20:00:11.823 回答