gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:28:43 25 4
gpt4 key购买 nike

我正在努力改进使用 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.*

实际上,如果这是一个字节或更多,则取决于编码...

希望这对您有所帮助。

关于c# - BinaryReader.PeekChar() 读取多少位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7182073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com