在Java和C#中,有几个用于缓冲流的类: C#中的BufferedStream、Buffered(Input|Output)Stream和Buffered(Reader|Writer)。
它们在构造函数中获取一些流,并实现相同的接口。
问题是-它是如何工作的?
当我试图读取一个字节时,会发生什么?它将大量字节读入内部缓冲区,然后一个字节接一个字节地返回给我?在写一个字节时?写入内部缓冲区,然后在flush()上将其写入内部流?
关于读/写字节数组-在缓冲流上读/写是不是因为将字节复制到内部数组或从内部数组复制字节而导致效率低下?
发布于 2013-05-17 23:37:26
它将大量字节读入内部缓冲区,然后一个字节接一个字节地返回给我?
基本上是这样的。从磁盘盘片或从TCP流请求数据需要时间,因此一次获取完整的字节块可能比尝试从源中逐个检索它们更有效。
https://stackoverflow.com/questions/16612918
复制相似问题