如何使用Java逐行读取大文本文件?

我需要使用Java逐行读取大约5-6 GB的大型文本文件。

我如何快速做到这一点?

回答:

常见的模式是使用

try (BufferedReader br = new BufferedReader(new FileReader(file))) {

String line;

while ((line = br.readLine()) != null) {

// process the line.

}

}

如果你假设没有字符编码,则可以更快地读取数据。例如ASCII-7,但差别不大。你处理数据的时间很可能会花费更长的时间。

一种不太常用的模式,可以避免line泄漏的范围。

try(BufferedReader br = new BufferedReader(new FileReader(file))) {

for(String line; (line = br.readLine()) != null; ) {

// process the line.

}

// line is not visible here.

}

在Java 8中,你可以执行

try (Stream<String> stream = Files.lines(Paths.get(fileName))) {

stream.forEach(System.out::println);

}

以上是 如何使用Java逐行读取大文本文件? 的全部内容, 来源链接: utcz.com/qa/429019.html

回到顶部