BinaryWriter 和 BinaryFormatter.Serialize 的区别?

Difference between BinaryWriter and BinaryFormatter.Serialize?

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

BinaryFormatter.Serialize()BinaryWriter 之间有什么细微差别吗?或者 BinaryWriter 只是一种更紧凑的方式来执行与 BinaryFormatter.Serialize() 相同的操作?

BinaryWriterBinaryFormatter 是两个不同的东西。

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

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

你可以说 BinaryFormatter 使用 BinaryWriter 来写入二进制数据,但它会做很多其他工作来自动序列化和反序列化你的对象。

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

之类的更基本的形式

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