我是对象序列化的新手,在我学习如何使用~/
读取和写入文件(反序列化和序列化)的过程中,我遇到了BinaryFormatter
和BinaryReader
,似乎在做同样的事情。
BinaryWriter
和BinaryFormatter.Serialize()
之间是否存在细微差别?或BinaryWriter
只是一种更紧凑的方式执行与BinaryWriter
相同的操作?
答案 0 :(得分:7)
BinaryWriter
用于将二进制中的原始类型写入流,并支持以特定编码写入字符串。 BinaryFromatter
负责将连接对象的整个对象或图形序列化为二进制格式。所以,我想你可以说BinaryWriter
是BinaryFormatter
之类的基本形式。
我在这里得到了这些信息:BinaryWriter& BinaryFormatter
答案 1 :(得分:4)
BinaryWriter
和BinaryFormatter
是两回事。
BinaryFormatter
用于序列化。它可以帮助您将C#对象映射到二进制表示,您可以将其写入文件,网络流等。
但BinaryWriter
无法帮助您将C#对象映射到二进制数据。它只是让你能够编写二进制数据(顾名思义)。所以你给它像int这样的原始类型,它将它转换成二进制并写入它。写完之后,当你需要阅读它时,你必须使用BinaryReader
,你必须知道你必须读取一个int。所以你必须自己以某种方式序列化你的数据。
您可以说BinaryFormatter
使用BinaryWriter
来编写二进制数据,但它会执行许多其他工作来自动序列化和反序列化您的对象。