Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
4年前关闭。
我需要阅读大文件的内容。为此,我在Google上进行了搜索,发现了很多方法和资源。但是我仍然感到困惑,这是读取大文件的方法(在我的情况下,需要考虑的因素是内存分配,性能,大文件)
使用
使用
使用
有人可以指导吗?
然后处理行余言。
从official文档:-
从文件中读取所有行作为流。与readAllLines不同,这
方法不会将所有行读入列表,而是填充
随着流的消耗而懒惰。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
4年前关闭。
我需要阅读大文件的内容。为此,我在Google上进行了搜索,发现了很多方法和资源。但是我仍然感到困惑,这是读取大文件的方法(在我的情况下,需要考虑的因素是内存分配,性能,大文件)
使用
FileChannel
使用
Files.readAllLines
使用
BufferedReader
有人可以指导吗?
最佳答案
最好的选择是延迟读取文件。一次并一次获取每一行。
例:-
Stream<String> lines = Files.lines(Paths.get("C:/files", "yourfile.txt"));
然后处理行余言。
从official文档:-
public static Stream<String> lines(Path path, Charset cs) throws IOException
从文件中读取所有行作为流。与readAllLines不同,这
方法不会将所有行读入列表,而是填充
随着流的消耗而懒惰。