c# – BinaryReader.PeekChar()读取多少位?

我正在努力改进使用BinaryReader的流阅读器类.它由一个while循环组成,该循环使用.PeekChar()来检查是否存在更多数据以继续处理.

一个操作是.ReadInt32(),它读取4个字节.如果PeekChar只“看到”一个字节(或一位)怎么办?这似乎不是检查EOF的可靠方法.

BinaryReader是使用其认参数构造的,据我所知,它使用UTF8作为认编码.我假设.PeekChar()检查8位但我真的不确定.

.PeekChar()寻找多少位? (以及检查EOF的其他方法有哪些?)

解决方法

这里 BinaryReader.PeekChar

我读:

ArgumentException: The current character cannot be decoded into the
internal character buffer by using the Encoding selected for the
stream.

这清楚地表明,读取的内存量取决于应用于该流的编码.

编辑

实际上根据MSDN的定义是:

Returns the next available character and does not advance the
byte or character position.*

事实上,如果这是一个或多个字节,它取决于编码…

希望这可以帮助.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...