BinaryFormatter与Filestream的关系

时间:2011-09-20 00:23:43

标签: c# .net

新的.net但仍然混淆了BinaryFormatter和Filestream的概念,从我读过的所有内容看起来他们似乎都在做同样的事情或类似的概念。防爆。是Binaryformatter.serialize,如何将文件流和对象作为参数合并,而我认为文件流功能是将流对象传输到文件。我只是混淆,有人可以告诉我他们如何一起工作以及两者之间的区别吗?

1 个答案:

答案 0 :(得分:1)

Streams表示可以按顺序访问的原始数据。无论何时输入或输出,都会使用它们(直接或间接)。有不同种类的流。例如:

  • NetworkStream和FileStream从网络端口和磁盘读取和写入数据,而不执行任何转换。
  • GzipStream或CryptoStream 通过添加压缩和加密来装饰基础流。

BinaryFormatter需要Stream来写或读。但它的责任是非常不同的:它用于将.NET对象转换为可以通过网络保存或传输的字节序列。具体介质和其他转换由您使用的流类型决定。

所有流都从Stream类继承并共享相同的接口,非常方便。像BinaryFormatter这样的类可以依赖于这个共享接口而不需要知道特定实现的细节。

BinaryFormatter再一次用于将对象转换为字节序列。 流用于读取和写入特定介质的这些字节。