如何在C#中将BinaryReader转换为Stream?

时间:2011-10-17 23:27:11

标签: c# streamreader bin binaryreader

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

不要将二进制数据作为string传递。相反,请使用与您可能已阅读过的任何byte[]分离的StreamStreamReader用于阅读文字是正确的,因此您需要直接使用BinaryReaderStream.Read() method。如果您正在读取的流允许搜索(通过CanSeek属性公开),则可以一次性发现其Length并从流中读取所有字节。

但是,如果流非常大或不支持搜索,那么在阅读时需要更精细一点,直到Read()方法返回0(其中表示已到达流的末尾。)

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