流 (信息技術)

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

流(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瀏覽器頁面存檔備份,存於互聯網檔案館)中查詢。