在内存中读取
读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:
Files.readLines(new File(path), Charsets.UTF_8);
FileUtils.readLines(new File(path));
这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致程序抛出OutOfMemoryError 异常。
读取一个大约1G的文件
public void readFiles() throws IOException {
String path = "...";
Files.readLines(new File(path), Charsets.UTF_8);
}
这种方式刚开始只占用了很少量的内存,然而,当文件全部读入内存后,我们可以看到,占用了大量的内存ÿ