c#中的二进制读取器peek字节

本文关键字:peek 字节 读取 二进制 | 更新日期: 2023-09-27 17:54:17

我希望使用二进制读取器来窥探二进制数据的一个字节。只有当它是UTF-8时,使用PeekChar才能正常工作。否则,我得到错误"输出字符缓冲区太小,无法包含解码的字符,编码'Unicode (UTF-8)'回退"。

是否有一种方法为二进制阅读器偷看一个字节,而不考虑编码?

Stream stream = new MemoryStream(buffer);
BinaryReader reader = new BinaryReader(stream);
type = (uint)reader.PeekChar(); // Throws error I mentioned for a particular case

c#中的二进制读取器peek字节

BinaryReader无法窥探单个字节,就这么简单。然而,对你来说,这并不重要。由于您在BinaryReader下面有一个MemoryStream,因此您可以安全地执行ReadByte并将Position向后移动一个字节。