如何在Java 8中逐行读取文件?

Pra*_*ngh 8 java java-8

在Java 8中,我看到在Files类中添加了名为lines()的新方法,可用于在Java中逐行读取文件.它适用于大文件吗?我的意思是我们可以加载前1000行然后第二组1000行.我有1GB的巨大文件,它会工作吗?

有人可以共享代码片段如何使用它?

Puc*_*uce 10

它适用于大文件吗?[...]我有1GB的巨大文件,它会工作吗?

据我所知它也应该适用于大文件(但我还没试过):

try(Stream<String> lines = Files.lines(path)){
    lines.filter(...).map(...)....foreach(...);
}
Run Code Online (Sandbox Code Playgroud)

我的意思是我们可以加载前1000行然后第二组1000行.

一次读取多少行是Files.lines特有的实现(可能使用BufferedReader,但我可能错了).

  • 您需要使用try-with-resources块,因为流不会自动关闭. (4认同)
  • @BenManes感谢您的提示,我编辑了我的答案. (2认同)