我必须完全阅读“.bin”文件并将流传递给函数。我尝试使用 BinaryReader 来逐字节读取值,我想将整个文件作为字符串流传递给我的函数。StreamReader 的使用提供了垃圾信息,看起来 StreamReader 无法正确读取 bin 文件。
提前致谢。
我必须完全阅读“.bin”文件并将流传递给函数。我尝试使用 BinaryReader 来逐字节读取值,我想将整个文件作为字符串流传递给我的函数。StreamReader 的使用提供了垃圾信息,看起来 StreamReader 无法正确读取 bin 文件。
提前致谢。
不要将二进制数据作为string
. 取而代之的是,使用与您可能已经阅读byte[]
过的任何内容分离的使用。Stream
阅读文本是正确的StreamReader
,因此您需要直接使用BinaryReader
或直接使用该Stream.Read()
方法。如果您正在读取的流允许查找(通过CanSeek
属性公开),您可以发现它Length
并一次性从流中读取所有字节。
但是,如果流非常大或不支持查找,则在读取时需要更加精细,通过分块进行读取,直到Read()
方法返回0
(这意味着已到达流的末尾)。
读取二进制数据没有StreamReader.ReadToEnd()
等效的方法,但是将其定义为扩展方法并不难。