【发布时间】:2014-05-28 04:41:57
【问题描述】:
我知道默认缓冲区大小是 2 Mb,这就是我正在使用的。
【问题讨论】:
-
什么告诉你这是默认设置?
-
上次我检查时,
BufferedReader的默认缓冲区大小是 8192 个字符(Java 6)。
标签: java bufferedreader
我知道默认缓冲区大小是 2 Mb,这就是我正在使用的。
【问题讨论】:
BufferedReader 的默认缓冲区大小是 8192 个字符(Java 6)。
标签: java bufferedreader
两者都没有。缓冲区的大小不会改变流的外部行为(间接地,就它从底层流中读取的频率而言)。如果您尝试read 的数据多于缓冲区中的数据,它将耗尽缓冲区,然后直接从底层流中读取其余数据。如果你readLine 并且换行符不包含在缓冲区中,它会做同样的事情,将数据复制到输出直到它确实找到换行符,但对大小没有任何影响流自己的缓冲区。
顺便说一句,在我发现的任何实现中,默认缓冲区大小都不是 2MB。 classpath 使用 8kB,Oracle 似乎使用 4kB 或 8kB。
【讨论】:
到目前为止,它使用内部StringBuffer 来保持组装线,它会根据需要增长。它不会增加读取缓冲区。
【讨论】:
BufferedReader 不一定是面向行的。在任何情况下,它都会读取 2Mb(如果这是缓冲区的大小)。
【讨论】: