BinaryWriter Endian issue
Я использую класс BinaryWriter для записи двоичного файла на диск. Когда я вызываю метод Write, передавая беззнаковое короткое значение, он записывает его в формате little-endian. Например:
bw.Write(0xA000);
записывает значение в двоичном файле как 0x00 0xA0. Есть ли способ заставить BInaryWriter использовать Big Endian? Если нет, возможно ли создать новый класс, наследующий BinaryWriter и перегружать функцию Write, чтобы заставить его писать большой конец?
Ответы
Ответ 1
Вы можете использовать мой EndianBinaryWriter
в MiscUtil. Это позволяет указать желаемую контенту. Там также EndianBinaryReader
и EndianBitConverter
.
EndianBinaryWriter writer = new EndianBinaryWriter(EndianBitConverter.Big,
stream);
writer.Write(...);
Это не вытекает из BinaryWriter
по причинам указанным в сообщении в блоге.
Ответ 2
в соответствии с подключением к Microsoft, он в настоящее время не поддерживается: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=484149