BinaryWriter Endian issue

两盒软妹~` 提交于 2019-11-26 09:12:07

问题


I am using BinaryWriter class to write a binary file to disk. When I invoke the Write method, passing an unsigned short value, it writes it in little-endian format. For example:

bw.Write(0xA000);

writes the value in the binary file as 0x00 0xA0. Is there a way to make BInaryWriter use Big Endian? If not, is it possible to create a new class, inheriting BinaryWriter and overload the Write function to make it write big endian?


回答1:


You can use my EndianBinaryWriter in MiscUtil. That lets you specify the endianness you want. There's also EndianBinaryReader and EndianBitConverter.

EndianBinaryWriter writer = new EndianBinaryWriter(EndianBitConverter.Big,
                                                   stream);
writer.Write(...);

It doesn't derive from BinaryWriter, for reasons given in a blog post.




回答2:


according to microsoft connect, it's currently not supported: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=484149



来源:https://stackoverflow.com/questions/1540251/binarywriter-endian-issue

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!