Java中的BufferedReader.readLine()会把整个文件放在内存中吗?

3

这是否是这样?或者只是在每个readline()上放置单独的字符串,并且取用最长字符串的空间量?


2
它从文件中填充缓冲区。除非文件小于缓冲区大小,否则不会一次性读取整个文件。 - Andy Turner
1个回答

7

它有这个功能吗?

不是的。

或者每个 readline() 只会放一个单独的字符串吗?

不是的。

最大内存空间只是用来存储最长字符串的容量吗?

不是的。

它是一个缓冲读取器。这意味着它有一个缓冲区。它填充缓冲区,直到可用数据和自己的限制,即 4096 个字符。它扫描缓冲区寻找行终止符; 返回其前面的数据作为下一行; 并从缓冲区中删除它。当缓冲区为空时,它会再次填充。

每个 readLine() 结果由调用者自行处理。


曾经是88,现在变成了8192。 - Andy Turner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接