C#流概述
.NET Framework使用“流”來支持讀取或寫入文件。可以將流視為一組連續的一維數據,包含開頭和結尾,並且其中的游標指示了流的當前位置。
1、流操作
流中包含的數據可能來自內存、文件或TCP/IP套接字。流包含以下幾種可以用於自身的基本操作:
l 讀取:將數據從流傳輸到數據結構(字符串或字節數據)中。
l 寫入:將數據從數據源傳輸到流中。
l 查找:查詢和修改在流中的位置。
2、流的類型
在.NET Framework中,“流”由Stream類表示,該類構成了所有其他流的抽象基類,不能直接實例化。但是必須使用它來實現某個I/O流類。
C#中由許多類型的流(14種派生類),但是在處理文件輸入/輸出時,最重要的類型為FileStream類,它提供了讀取或寫入文件的方式。可在處理文件輸入/輸出時使用的其它流主要包括:BufferedStream、CopytoStream、MemoryStream和NetworkStream等。
3、文件I/O流FileStream介紹
C#中,文件I/O流使用FileStream類實現,該類公開以文件為主的Stream,表示在磁盤或網絡路徑上指向文件的流。一個FileStream類的實例實際上表示一個磁盤文件,它通過Seek方法進行對文件的隨機訪問,也同時包含了流的標准輸入、標准輸出和標准錯誤等。FileStream默認對文件的打開方式是同步的,但是它同樣很好地支持異步操作。
4、使用I/O流操作文本文件
使用I/O流操作文本文件時主要用到StreamWriter和StreamReader類。
l StreamWriter類:專門用來處理文本文件的類,可以方便地向文本文件寫入字符串,同時它也負責重要的轉換和處理向FileStream對象寫入的工作。
l StreamReader類:專門用來讀取文本文件的類。StreamReader可以從底層Stream對象創建StreamReader對象的實例,而且還能指定編碼規范參數。創建StreamReader對象后,它提供了許多用於讀取和瀏覽字符數據的方法。
5、使用I/O流操作二進制文件
使用I/O流操作二進制文件時主要用到BinaryWriter和BinaryReader類。
l BinaryWriter類:以二進制形式將基元類型寫入流,並支持用特定的編碼方式寫入字符串。
l BinaryReader類:使用特定的編碼將基元數據類型讀作二進制值。
文件、流讀取/寫入器和流之間的操作關系圖: