1

我必须完全阅读“.bin”文件并将流传递给函数。我尝试使用 BinaryReader 来逐字节读取值,我想将整个文件作为字符串流传递给我的函数。StreamReader 的使用提供了垃圾信息,看起来 StreamReader 无法正确读取 bin 文件。

提前致谢。

4

1 回答 1

0

不要将二进制数据作为string. 取而代之的是,使用与您可能已经阅读byte[]过的任何内容分离的使用。Stream阅读文本是正确的StreamReader,因此您需要直接使用BinaryReader或直接使用该Stream.Read()方法。如果您正在读取的流允许查找(通过CanSeek属性公开),您可以发现它Length并一次性从流中读取所有字节。

但是,如果流非常大或不支持查找,则在读取时需要更加精细,通过分块进行读取,直到Read()方法返回0(这意味着已到达流的末尾)。

读取二进制数据没有StreamReader.ReadToEnd()等效的方法,但是将其定义为扩展方法并不难。

于 2011-10-17T23:55:25.353 回答