流 (信息技術)

计算机科学中对“可操作的字节序列”的抽象

流(Stream)是计算机科学中对“可操作的字节序列”的抽象,文件IO设备、进程中通信管道或TCP/IP套接字都提供流。

定义

根据流的来源和载体不同,可以分为文件流、内存流、网络流、字符流等。

对流可以进行三种操作,即写入(Write)、读取(Read)和查找(Seek),但不是所有的流都支持这三种操作,只能读取的流叫做只读流。

流可以具有缓冲区(Buffer),以对读写数据进行缓冲,例如,向低速存储设备的写入操作通常需要缓冲流,以避免IO密集性访问。

C#实现

在C#中,所有流的基础是 System.IO.Stream 类型,其它流都是从它派生的,常用的有 System.IO.BufferedStream,System.IO.FileStream,System.IO.MemoryStream 等。

System.IO.Stream 定义于 System.Runtime.dll 程序集中,定义如下。

public abstract class Stream : MarshalByRefObject, IAsyncDisposable, IDisposable

通过 Stream 类型的三个只读属性 CanRead,CanWrite 和 CanSeek 可以查询流的功能。

Stream 类型的具体信息可在.NET API浏览器中查询。