【发布时间】:2014-05-08 00:41:37
【问题描述】:
场景 我有一个二进制文件,它是某个系统的输出。供应商已经向我们提供了文件编码的描述。它非常复杂,因为编码遵循某种方法。例如。第一个字节是 ISO 编码的,我们需要先对其进行解码,如果值与提供的列表匹配,则它具有一定的意义。然后接下来的 15 Bytes 也是 ISO 编码的,我们需要对其进行解码和比较。类似地,在某个位置之后,很少有字节被二进制编码..等等。
目前的行动 我将使用 C# WinForm 应用程序。到目前为止,我查看了各种文档,并且都指向 FileStream/BinaryReader 组合,因为我的文件大小在 1G 到 1.8G 的范围内。我也不能将整个文件放在 Byte[] 中。
问题 我在逐字节读取文件时遇到问题。根据上述情况,首先我只需要读取 1 个字节,然后是 15 个字节,然后是 10 个字节,依此类推。如何做到这一点。提前感谢您的帮助。
【问题讨论】:
-
Stream 和 BinaryReader 都有读取单个字节和读取多个字节的方法(Stream: ReadByte/Read, BinaryReader: ReadByte/ReadBytes)——它们都不需要你将整个文件读入一个字节[]。
标签: c# character-encoding binaryfiles