Подтвердить что ты не робот

BinaryWriter Endian issue

Я использую класс BinaryWriter для записи двоичного файла на диск. Когда я вызываю метод Write, передавая беззнаковое короткое значение, он записывает его в формате little-endian. Например:

bw.Write(0xA000);

записывает значение в двоичном файле как 0x00 0xA0. Есть ли способ заставить BInaryWriter использовать Big Endian? Если нет, возможно ли создать новый класс, наследующий BinaryWriter и перегружать функцию Write, чтобы заставить его писать большой конец?

4b9b3361

Ответ 1

Вы можете использовать мой EndianBinaryWriter в MiscUtil. Это позволяет указать желаемую контенту. Там также EndianBinaryReader и EndianBitConverter.

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

Это не вытекает из BinaryWriter по причинам указанным в сообщении в блоге.