Stream和MemoryStream的区别是什么?

本文关键字:是什么 区别 MemoryStream Stream | 更新日期: 2023-09-27 18:01:48

c#中StreamMemoryStream的主要区别是什么?

如果我需要创建一个没有文件的Stream,我应该使用MemoryStream代替吗?

Stream和MemoryStream的区别是什么?

MemoryStream派生自通用类Stream

关于Stream from MSDN:

提供字节序列的通用视图。这是一个抽象类

所以你不能创建Stream的实例。您必须使用一个派生类,如MemoryStream, FileStream

MemoryStreamFileStream是。net框架中从抽象基类Stream继承的类的例子,如下面的精简继承树所示:

  • 系统。对象
    • 系统。MarshalByRefObject
      • System.IO.Stream
        • System.IO.FileStream
        • System.IO.MemoryStream

您将使用FileStream读取/写入文件,但MemoryStream读取/写入内存中的数据,例如从字符串解码的字节数组。

您不会单独使用Stream,而是将其用于多态性,即将其传递给可以接受任何Stream实现作为参数的方法。