我知道默认缓冲区大小为2 Mb,这就是我正在使用的内容。
答案 0 :(得分:1)
都不是。缓冲区的大小不会改变流的外部行为(除了间接地,从它从底层流中读取的频率)。如果您尝试read
多于缓冲区中的数据,它将耗尽缓冲区,然后直接从基础流中读取其余数据。如果您readLine
并且新行未包含在缓冲区中,它将执行相同的操作,将数据复制到输出,直到 找到换行符,但对其没有任何影响流的大小自己的缓冲区。
顺便提一下,在我发现的任何实现中,默认缓冲区大小不是2MB; classpath使用8kB,而Oracle似乎使用4kB或8kB。
答案 1 :(得分:0)
它使用内部StringBuffer
来保存到目前为止组装的线,并根据需要增长。它不会增长读缓冲区。
答案 2 :(得分:-2)
BufferedReader不一定是面向行的。在任何情况下,它都将读取2Mb(如果这是缓冲区的大小)。