我使用BinaryWriter類將二進制文件寫入磁盤。當我調用Write方法時,傳遞一個無符號短值,它將以小尾數格式寫入。例如:BinaryWriter Endian問題
bw.Write(0xA000);
將二進制文件中的值寫入0x00 0xA0。有沒有辦法讓BInaryWriter使用Big Endian?如果沒有,是否有可能創建一個新類,繼承BinaryWriter並重載Write函數以使其寫入大端?
我使用BinaryWriter類將二進制文件寫入磁盤。當我調用Write方法時,傳遞一個無符號短值,它將以小尾數格式寫入。例如:BinaryWriter Endian問題
bw.Write(0xA000);
將二進制文件中的值寫入0x00 0xA0。有沒有辦法讓BInaryWriter使用Big Endian?如果沒有,是否有可能創建一個新類,繼承BinaryWriter並重載Write函數以使其寫入大端?
您可以在MiscUtil中使用我的EndianBinaryWriter
。這可以讓你指定你想要的排列順序。還有EndianBinaryReader
和EndianBitConverter
。
EndianBinaryWriter writer = new EndianBinaryWriter(EndianBitConverter.Big,
stream);
writer.Write(...);
它不會從BinaryWriter
得出,原因given in a blog post。
根據微軟的連接,它目前還不支持:http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=484149
在這裏投票和@ Connect – 2009-10-08 20:46:25
看起來正是我需要的(雖然我的項目是.NET 2.0)。我會試試看!謝謝! – Icemanind 2009-10-08 20:37:35
有一個.NET 2.0版本的MiscUtil,你可以下載 - 它應該沒問題。 – 2009-10-08 20:38:31
@JonSkeet:我知道這篇文章已經5年了,但是你的博客文章鏈接已經死了:/ – 2014-09-12 12:37:57