如何在c#中将BinaryReader转换为流
本文关键字:转换 BinaryReader 中将 | 更新日期: 2023-09-27 18:11:26
我必须完全读取".bin"文件并将流传递给函数。我用BinaryReader试过了,它可以逐个字节地读取值,我想把整个文件作为字符串流传递给我的函数。使用StreamReader会给出垃圾信息,看起来StreamReader不能正确读取bin文件。
不要将二进制数据作为string
传递。相反,使用byte[]
,它与您可能从中读取它的任何Stream
分离。StreamReader
用于读取文本是正确的,因此您需要直接使用BinaryReader
或仅使用Stream.Read()
方法。如果你正在读取的流允许查找(通过CanSeek
属性公开),你可以发现它的Length
并一次从流中读取所有字节。
但是,如果流非常大或不支持查找,则在读取时需要更精细一点,通过分块读取,直到Read()
方法返回0
(这意味着已到达流的末尾)。
没有等价的StreamReader.ReadToEnd()
来读取二进制数据,但是定义一个作为扩展方法并不难。