Vor*_*326 8 c# java buffer encapsulation stream
在Java和C#中,有几个用于缓冲流的类:
BufferedStream在C#Buffered(Input|Output)Stream 和Buffered(Reader|Writer).
他们在构造函数中获取一些流并实现相同的接口.
问题是 - 它是如何工作的?
当我试图读取一个字节时会发生什么?它将大量字节读入内部缓冲区,然后逐字节地将其返回给我?在写一个字节?写入内部缓冲区并将其flush()写入内部流?
关于读/写一个字节数组 - 在缓冲流上执行它是否效率低导致从内部数组中双重复制字节?
它读取大量字节到内部缓冲区,然后一个字节一个字节地返回给我?
基本上,是的。从磁盘盘或 TCP 流请求数据需要时间,因此一次获取整个字节块比尝试从源单独检索它们会更有效。