BinaryWriter和BinaryFormatter.Serialize之间的区别?

Aus*_*inC 5 c# serialization binaryformatter binarywriter deserialization

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

有没有之间的一些微妙的差异BinaryFormatter.Serialize()BinaryWriter?或者BinaryWriter只是执行相同操作的更紧凑的方式BinaryFormatter.Serialize()

Cor*_*gan 7

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

我在这里得到了这些信息:BinaryWriterBinaryFormatter


小智 5

BinaryWriterBinaryFormatter是两个不同的东西。

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

BinaryWriter不能帮助您将C#对象映射到二进制数据。它只是使您能够写入二进制数据(顾名思义)。因此,您可以给它提供像int这样的原始类型,它将其转换为二进制并编写。在编写后,当您需要阅读时,必须使用a,BinaryReader并且必须以某种方式知道必须读取int。因此,您必须自己以某种方式序列化数据。

可以说BinaryFormatter使用BinaryWriter曾经可以写二进制数据,但是它还完成了许多其他工作来自动序列化和反序列化对象。