我必须完全读取“.bin”文件并将流传递给函数。我尝试使用BinaryReader,它可以逐字节地读取值,我希望将整个文件作为字符串流传递给我的函数。使用StreamReader提供垃圾信息,看起来StreamReader无法正确读取bin文件。
提前致谢。
答案 0 :(得分:0)
不要将二进制数据作为string
传递。相反,请使用与您可能已阅读过的任何byte[]
分离的Stream
。 StreamReader
用于阅读文字是正确的,因此您需要直接使用BinaryReader
或Stream.Read()
method。如果您正在读取的流允许搜索(通过CanSeek
属性公开),则可以一次性发现其Length
并从流中读取所有字节。
但是,如果流非常大或不支持搜索,那么在阅读时需要更精细一点,直到Read()
方法返回0
(其中表示已到达流的末尾。)
读取二进制数据没有StreamReader.ReadToEnd()
等价物,但是将其定义为扩展方法并不是很难。