我正在使用 BinaryWriter 类将二进制文件写入磁盘。当我调用 Write 方法并传递一个无符号短值时,它以小端格式写入。例如:
bw.Write(0xA000);
将二进制文件中的值写入 0x00 0xA0。有没有办法让 BInaryWriter 使用 Big Endian?如果不行,是否可以新建一个类,继承BinaryWriter,重载Write函数,让它写big endian?
最佳答案
您可以在 MiscUtil 中使用我的 EndianBinaryWriter
.这使您可以指定所需的字节顺序。还有 EndianBinaryReader
和 EndianBitConverter
。
EndianBinaryWriter writer = new EndianBinaryWriter(EndianBitConverter.Big,
stream);
writer.Write(...);
它不是从 BinaryWriter
派生的,原因 given in a blog post .
关于c# - BinaryWriter Endian 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1540251/