本文由 ImportNew - 进林 翻译自 Eugen Paraschiv。欢迎加入翻译小组。转载请见文末要求。
1、概述
本教程将演示如何用Java高效地读取大文件.
2、在内存中读取
读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:
Files.readLines(new File(path), Charsets.UTF_8);
FileUtils.readLines(new File(path));
这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致程序抛出OutOfMemoryError 异常
例如:读取一个大约1G的文件:
@Test
public void givenU