BufferedReader
具有其名称,因为它是字符缓冲区。该缓冲区的默认容量为8192。每当请求换行时,都会为该换行序列解析该缓冲区,并将返回该零件。当缓冲区中没有足够的字符来查找当前行时,整个缓冲区将被填充。
现在,填充缓冲区可能导致请求从基础InputStream
读取字节以填充字符解码器的缓冲区。请求多少字节以及实际读取多少字节取决于字符解码器的缓冲区大小,实际编码映射到一个字符的字节数以及基础InputStream
是否具有自己的缓冲区以及有多大是。
Stream
API所做的任何操作都无法更改此设置。您唯一要并行化的是在缓冲区中搜索换行符,这太简单了,无法从并行执行中受益。您可以减小所有参与方的缓冲区大小,以便在处理上一行时大致获得预期的并行读取一行的行,但是,并行执行将永远无法弥补因缓冲区大小较小而导致的性能下降。