【发布时间】:2018-06-22 07:54:24
【问题描述】:
我正在使用以下代码来读取大文件:
InputStreamReader isr = new InputStreamReader(new FileInputStream(FilePath));
BufferedReader br = new BufferedReader(isr);
while ((cur = br.readLine()) != null)
我可以使用上面的代码读取大文件,但我想知道这些阅读器是如何在内存内部工作的。 inputstreamreader 起什么作用?逐行读取文件(例如 2 GB)时分配了多少内存块?
【问题讨论】:
-
看源码。
-
javadocs 中的来源?我已经经历过了。我的困惑是 inputstreamreader 和 bufferedreader 是如何链接的
-
bufferedReader 需要一个源来读取。这是唯一的链接。
-
这是否意味着 isr 将继续向 br 提供字符流,而 bufferedreader 会将其存储在缓冲区中?如果是这样的话,isr 一次从文件中读取了多少个字符(读取字节并将它们解码为字符)
标签: java inputstream bufferedreader inputstreamreader