解析conf文件Java

时间:2015-07-09 13:08:37

标签: java file parsing

你能告诉我解析这样一个文件的最佳方法:

# -----------------------------------------------------------------------
# prices
# -----------------------------------------------------------------------

Au333    237.41
Au375    267.35
Au500    356.47

/# - 其评论

Au333 = 237.41(与key = value一样)。但在我的文件中没有' ='而只是一些空格。 我想要类似Java中的类属性。但是当你有' ='在键和值之间

4 个答案:

答案 0 :(得分:0)

您对我的看法是CSV文件的特例。您可以使用openCSV来解析它。

  CSVReader reader = new CSVReader(new FileReader("yourfile.csv"), "  ");
     String [] nextLine;
     while ((nextLine = reader.readNext()) != null) {
        // nextLine[] is an array of values from the line
        System.out.println(nextLine[0] + nextLine[1] + "etc...");
    }
  }

答案 1 :(得分:0)

读取每一行并创建一个方法来提取两个数据点。

之类的东西
public static void parseLine(String line)
{
    StrArr.add(line.substring(0,5));
    line = line.substring(5,line.length);
    IntArr.add(Integer.parseInt(line));
}

答案 2 :(得分:0)

这是完成任务的一种方法:

String keyAndValue = "Au333    237.41";
String[] keyAndValueArray = keyAndValue.split(" ");
String key = keyAndValue.split(" ")[0];
String value = keyAndValue.split(" ")[keyAndValueArray.length - 1];

希望它有所帮助!

答案 3 :(得分:0)

Whitespace是Java x86_64 align stack and recover without saving registers文件中的关键终结符,所以你应该有所作为。

data.properties

# -----------------------------------------------------------------------
# prices
# -----------------------------------------------------------------------

Au333    237.41
Au375    267.35
Au500    356.47

PropsLoaderExample.java

Properties prop = new Properties();

try {
    InputStream in = new FileInputStream("resources/data.properties");
    prop.load(in);
    in.close();

    System.out.println(prop.getProperty("Au333"));
    System.out.println(prop.getProperty("Au375"));
    System.out.println(prop.getProperty("Au500"));
}
catch(Exception e) {
    e.printStackTrace();
}

注意:不要吞下这样的例外。这只是为了测试。