Java - 解析行

时间:2013-04-02 08:35:44

标签: java file parsing

从文件中解析这些行的最佳做法是什么?

files       txt 50     // first gab are spaces, the second is tabulator
files       bmp 9979
files       all 2063
score       scr 656
index       ind 0.0779
index       ind 0.0213 

我需要获取值(50, 9979等)才能将它们保存到CSV文件中(但这不是此问题的一部分)。

5 个答案:

答案 0 :(得分:5)

您可以按\s+拆分并访问返回数组的最后一个单元格。

for (String line : lines) {
    String[] data = line.split("\\s+");
    String lastEntry = data[data.length - 1];
    // lastEntry contains what you're looking for
}

答案 1 :(得分:5)

这是你想要的吗?

BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
   String val = line.split("\\s+")[2];
   //do something with val

}
br.close();

答案 2 :(得分:2)

这看起来像典型的平面文件。要读取数字,您应该只在感兴趣的位置移动每行的光标并读取您需要的所有字符。

对于您的情况,您应该从16开始并阅读到行尾。

1234567890123456
files       txt 50     
files       bmp 9979
files       all 2063
score       scr 656
index       ind 0.0779
index       ind 0.0213 

答案 3 :(得分:2)

使用FileReader读取每一行,然后用空格分割String并检索第三个索引。

String value =line.split("\\s+")[2];

答案 4 :(得分:1)

读取行,遍历它们并使用正则表达式来分割行并获取值。就是这样。