2

我是新來的對象序列化,並在我學習如何使用BinaryFormatter來讀取和寫入文件(反序列化和序列化),我碰到BinaryReaderBinaryWriter,這似乎是做同樣的事情。BinaryWriter和BinaryFormatter.Serialize之間的區別?

BinaryFormatter.Serialize()BinaryWriter之間有一些細微的差異嗎?或者是BinaryWriter只是一種更簡潔的方式執行與BinaryFormatter.Serialize()相同的操作?

+0

潛在CodeProject上的文章,可能是一些使用的給你[BinaryFormatter的與手動序列化(http://www.codeproject.com/Articles/311944/BinaryFormatter - 或手動序列化) – jrbeverly

回答

4

BinaryWriter用於將二進制原始類型寫入流並支持以特定編碼寫入字符串。 BinaryFromatter負責將連接對象的整個對象或圖形序列化爲二進制格式。所以,我想你可以說BinaryWriterBinaryFormatter之類的更基本的形式。

我得到這個信息在這裏:BinaryWriter & BinaryFormatter

3

BinaryWriter和BinaryFormatter是兩個不同的東西。

BinaryFormatter用於序列化。它可以幫助您將C#對象映射到可寫入文件,網絡流等的二進制表示。

但BinaryWriter不幫助您將C#對象映射到二進制數據。它只是給你寫入二進制數據的能力(顧名思義)。所以你給它像int這樣的原始類型,它將它轉換成二進制並寫入它。寫完之後,當你需要閱讀它時,你必須使用BinaryReader,你必須知道你必須讀取一個int。所以你必須自己序列化你的數據。

你可以說BinaryFormatter使用BinaryWriter能夠寫入二進制數據,但它做了很多其他工作來自動序列化和反序列化你的對象。