繁体   English   中英

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

[英]How to read file line by line in Java 8?

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

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

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

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

try(Stream<String> lines = Files.lines(path)){
    lines.filter(...).map(...)....foreach(...);
}

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

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

来自API(由我鼓舞)

从文件中读取所有行作为流。 与readAllLines不同,此方法不会将所有行读入List,而是在使用流时延迟填充。

这强烈建议您可以在任意大小的文件上使用它,假设您的代码不包含内存中的所有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM