我正在使用 BinaryWriter 类将二进制文件写入磁盘。当我调用 Write 方法时,传递一个无符号短值,它以小端格式写入。例如:
bw.Write(0xA000);
将二进制文件中的值写入 0x00 0xA0。有没有办法让 BInaryWriter 使用 Big Endian?如果没有,是否可以创建一个新类,继承 BinaryWriter 并重载 Write 函数以使其写入大端?
我正在使用 BinaryWriter 类将二进制文件写入磁盘。当我调用 Write 方法时,传递一个无符号短值,它以小端格式写入。例如:
bw.Write(0xA000);
将二进制文件中的值写入 0x00 0xA0。有没有办法让 BInaryWriter 使用 Big Endian?如果没有,是否可以创建一个新类,继承 BinaryWriter 并重载 Write 函数以使其写入大端?
您可以EndianBinaryWriter
在MiscUtil中使用我的。这使您可以指定所需的字节顺序。还有EndianBinaryReader
和EndianBitConverter
。
EndianBinaryWriter writer = new EndianBinaryWriter(EndianBitConverter.Big,
stream);
writer.Write(...);
由于博客文章中给出的BinaryWriter
原因,它并非源自。
根据microsoft connect,目前不支持:http ://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=484149