Stream和MemoryStream有什么区别

时间:2014-05-06 09:35:57

标签: c#

C#中StreamMemoryStream之间的主要区别是什么?

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

2 个答案:

答案 0 :(得分:11)

MemoryStream来自普通班级Stream

关于MSDNStream

  

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

因此,您无法创建Stream的实例。您必须使用其中一个派生类,例如MemoryStreamFileStream等。

答案 1 :(得分:8)

MemoryStreamFileStream是.NET框架中继承自抽象基类Stream的类的示例,如此精简继承树所示:

  • System.Object的
    • System.MarshalByRefObject
      • System.IO.Stream
        • System.IO.FileStream
        • System.IO.MemoryStream
        • ......其他几个......

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

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