0

有没有办法在不将文档导入为字符串或数组列表的情况下搜索和组织 txt 文件?

我正在寻找可以执行以下操作的代码:

当第 1 列等于“2”时(当文档看起来像这样)时,将第 2 列中的所有数字相加:

2    45    46    89    45
2    65    34    23    89
3    45    65    22    99

我正在使用的文件是 20gb 长,因此制作一个数组列表一次大约需要 45 分钟,然后再返回它也需要很长时间。努力做到这一点,以便我可以只浏览一次文档并获得所需的一切。

4

1 回答 1

3

逐行读取文件,按空格拆分,如果满足条件,则添加到总数中。

BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String line;
long total = 0;
while ((line = reader.readLine()) != null) {
    String[] tokens = line.split(" ");
    if (tokens[0].equals("2"))
        sum += Long.valueOf(tokens[1]);
}
于 2013-06-12T12:56:00.190 回答