3

根据文档

使用从流中读取的指定字节数填充内部缓冲区。

这是什么意思(什么是内部缓冲区?)?

4

3 回答 3

0

BinaryReader有一个内部缓冲区,因此它不需要对底层流执行尽可能多的小读取,尤其是在读取可能需要一些前瞻的字符数据时。您不需要手动调用它。

于 2010-10-17T20:08:57.520 回答
0

请注意,该方法被声明为受保护的。

因此,仅当您想创建一个从BinaryReader继承的类时才有意义,而您很少需要这样做。

于 2010-10-17T20:14:21.797 回答
0

看起来这里的主要目的是让你有一个方便的方法来确保你在本地有一个数据块;例如,在读取“double”时,您(通常)需要 8 个字节。此方法结束:

  • 检查内部缓冲区是否已经足够
  • 根据需要循环“读取”
  • 检查EOF(和错误)
  • 超限防护
  • 处理缓冲区管理,例如定期向后块复制数据,或处理循环缓冲区的各种索引

但是,您似乎不太可能需要在外部调用它,除非您正在阅读一个小的“字节 []”

至于内部缓冲区;简单地说,在反序列化你时:

  • 想要尽量减少对“阅读”的调用
  • 经常需要窥视超过 1 个字节(没有缓冲区很棘手)
  • 经常想要对小的“字节[]”进行操作(例如,通过 BitConverter)

所以只要工作

于 2010-10-17T20:35:05.623 回答