J’utilise la classe BinaryWriter pour écrire un fichier binary sur le disque. Lorsque j’appelle la méthode Write en passant une valeur courte non signée, elle l’écrit au format little-endian. Par exemple:
bw.Write(0xA000);
écrit la valeur dans le fichier binary en tant que 0x00 0xA0. Y at-il un moyen de faire en sorte que BInaryWriter utilise Big Endian? Sinon, est-il possible de créer une nouvelle classe, en héritant de BinaryWriter et en surchargeant la fonction Write pour lui faire écrire du gros endian?
Vous pouvez utiliser mon EndianBinaryWriter
dans MiscUtil . Cela vous permet de spécifier l’endianité souhaitée. Il y a aussi EndianBinaryReader
et EndianBitConverter
.
EndianBinaryWriter writer = new EndianBinaryWriter(EndianBitConverter.Big, stream); writer.Write(...);
Il ne provient pas de BinaryWriter
, pour des raisons données dans un article de blog .
Selon Microsoft Connect, il n’est actuellement pas pris en charge: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=484149.