BinaryWriter和BinaryFormatter.Serialize之间的区别?

时间:2016-11-22 19:16:48

标签: c# serialization deserialization binaryformatter binarywriter

我是对象序列化的新手,在我学习如何使用~/读取和写入文件(反序列化和序列化)的过程中,我遇到了BinaryFormatterBinaryReader,似乎在做同样的事情。

BinaryWriterBinaryFormatter.Serialize()之间是否存在细微差别?或BinaryWriter只是一种更紧凑的方式执行与BinaryWriter相同的操作?

2 个答案:

答案 0 :(得分:7)

BinaryWriter用于将二进制中的原始类型写入流,并支持以特定编码写入字符串。 BinaryFromatter负责将连接对象的整个对象或图形序列化为二进制格式。所以,我想你可以说BinaryWriterBinaryFormatter之类的基本形式。

我在这里得到了这些信息:BinaryWriter& BinaryFormatter

答案 1 :(得分:4)

BinaryWriterBinaryFormatter是两回事。

BinaryFormatter用于序列化。它可以帮助您将C#对象映射到二进制表示,您可以将其写入文件,网络流等。

BinaryWriter无法帮助您将C#对象映射到二进制数据。它只是让你能够编写二进制数据(顾名思义)。所以你给它像int这样的原始类型,它将它转换成二进制并写入它。写完之后,当你需要阅读它时,你必须使用BinaryReader,你必须知道你必须读取一个int。所以你必须自己以某种方式序列化你的数据。

您可以说BinaryFormatter使用BinaryWriter来编写二进制数据,但它会执行许多其他工作来自动序列化和反序列化您的对象。