使用Java NIO读取大文件

时间:2015-11-13 09:55:24

标签: java nio large-files

我需要阅读大文件的内容。为此,我用Google搜索并找到了很多方法和资源。但我仍然感到困惑的是读取大文件的方法(在我的情况下需要考虑的因素是内存分配,性能,大文件)

  1. 使用FileChannel
  2. 使用Files.readAllLines
  3. 使用BufferedReader
  4. 有人能指导吗?

1 个答案:

答案 0 :(得分:2)

您最好的选择是懒惰地阅读文件。一次获取一行并处理每一行。

实施例: -

Stream<String> lines = Files.lines(Paths.get("C:/files", "yourfile.txt"));

然后处理后面的行。

来自official文档: -

public static Stream<String> lines(Path path, Charset cs) throws IOException
  

从文件中读取所有行作为流。与readAllLines不同,这个   method不会将所有行读入List,而是填充   懒惰地消耗了流。