如果我的缓冲读卡器正在读取大于2 Mb的线路,它会缓冲线路还是缓冲区大小会增加?

时间:2014-05-28 04:41:58

标签: java bufferedreader

我知道默认缓冲区大小为2 Mb,这就是我正在使用的内容。

3 个答案:

答案 0 :(得分:1)

都不是。缓冲区的大小不会改变流的外部行为(除了间接地,从它从底层流中读取的频率)。如果您尝试read多于缓冲区中的数据,它将耗尽缓冲区,然后直接从基础流中读取其余数据。如果您readLine并且新行未包含在缓冲区中,它将执行相同的操作,将数据复制到输出,直到 找到换行符,但对其没有任何影响流的大小自己的缓冲区。

顺便提一下,在我发现的任何实现中,默认缓冲区大小不是2MB; classpath使用8kB,而Oracle似乎使用4kB或8kB。

答案 1 :(得分:0)

它使用内部StringBuffer来保存到目前为止组装的线,并根据需要增长。它不会增长读缓冲区。

答案 2 :(得分:-2)

BufferedReader不一定是面向行的。在任何情况下,它都将读取2Mb(如果这是缓冲区的大小)。