如何读取大文件?(java) 流式读取
当文件过大,并且你设置的 内存过下或者无法满足文件内存,一次性读取就会出现OOM内存溢出。
当这时可以使用 Files.lines() 方法解决
与 readAllLines 方法返回 List 不同,lines 方法返回的是 Stream。
这,使得我们在需要时可以不断读取、使用文件中的内容,而不是一次性地把所有内容都读 取到内存中,因此避免了 OOM。
LongAdder longAdder = new LongAdder();
IntStream.rangeClosed(1, 10000).forEach(i -> {
try (Stream<String> lines = Files.lines(Paths.get("C:\\Users\\Desktop\\从.java进行运行打包.以及API文档.txt"))) {
lines.forEach(line -> longAdder.increment());
} catch (IOException e) {
e.printStackTrace();
}
});
System.out.println(longAdder.longValue());