Stream和MemoryStream的区别是什么?
本文关键字:是什么 区别 MemoryStream Stream | 更新日期: 2023-09-27 18:01:48
c#中Stream
和MemoryStream
的主要区别是什么?
如果我需要创建一个没有文件的Stream
,我应该使用MemoryStream
代替吗?
MemoryStream
派生自通用类Stream
。
关于Stream
from MSDN:
提供字节序列的通用视图。这是一个抽象类
所以你不能创建Stream
的实例。您必须使用一个派生类,如MemoryStream
, FileStream
等
MemoryStream
和FileStream
是。net框架中从抽象基类Stream
继承的类的例子,如下面的精简继承树所示:
- 系统。对象
- 系统。MarshalByRefObject
- System.IO.Stream
- System.IO.FileStream
- System.IO.MemoryStream
- …
- System.IO.Stream
- 系统。MarshalByRefObject
您将使用FileStream
读取/写入文件,但MemoryStream
读取/写入内存中的数据,例如从字符串解码的字节数组。
您不会单独使用Stream
,而是将其用于多态性,即将其传递给可以接受任何Stream
实现作为参数的方法。