BinaryWriter Endian issue

.net, c#, endianness, vb.net

Solution

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.

Problem

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?

Original source