3

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

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 文件(但这不是这个问题的一部分)。

4

5 回答 5

5

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

for (String line : lines) {
    String[] data = line.split("\\s+");
    String lastEntry = data[data.length - 1];
    // lastEntry contains what you're looking for
}
于 2013-04-02T08:38:25.137 回答
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();
于 2013-04-02T08:40:42.340 回答
2

这看起来像典型的平面文件。要读取数字,您只需将光标移动到感兴趣点的每一行并读取您需要的所有字符。

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

1234567890123456
files       txt 50     
files       bmp 9979
files       all 2063
score       scr 656
index       ind 0.0779
index       ind 0.0213 
于 2013-04-02T08:38:17.090 回答
2

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

String value =line.split("\\s+")[2];
于 2013-04-02T08:38:20.700 回答
1

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

于 2013-04-02T08:37:38.770 回答