資料流與 IO 類別

.NET透過封裝檔案與資料流讀寫功能的相關類別,提供應用程式完整的讀寫功能支援,相關類別集中於System.IO命名空間,開發人員透過各種類別與介面的引用,便能輕易完成基本的資料輸出入操作。

System.IO 命名空間的類別(以下簡稱為 IO類別)針對各種格式的資料存取操作提供廣泛的支援,資料的讀寫來源與目的不限定於檔案或是實體磁碟,其他如記憶體,甚至網路都可以經由相關的類別來處理,IO類別數量不少,以下根據功能與其配置於繼承架構裏的位置,列舉其中比較重要的類別以方便理解。



圖中將 IO 類別歸納為兩大類,分別是上半部「檔案目錄處理類別」,以及下半部用來處理各種型式資料的「資料處理類別」,每一個深色方塊表示一種包含特定功能的 I/O 基礎類別。

檔案目錄處理類別

以檔案目錄為資料讀寫對象。

處理檔案目錄的類別中,衍生自 Object 的 Directory 、 File 以及 Path 類別具備通用於一般檔案目錄的處理功能,而另一大類則是由 FileSystemInfo 類別所衍生的兩個子類別: FileInfo 以及 DirectoryInfo 等,這兩個類特別適於處理特定的檔案目錄。

資料處理類別

以資料流為資料讀寫對象,區分為以下三種類型。

.位元組資料讀寫處理

這一組類別被設計用以存取位元組型態的資料, Stream 類別是其中的核心基底類別,其下衍生了幾個重要的資料流類別, BufferedStream 、 FileStream 以及 MemoryStream ,分別提供特定位元組資料輸出與輸入的相關操作功能。

Stream 類別另外還有兩個重要的子類別,分別是 NetworkStream 以及 CryptoStream ,它們並不屬於 I/O 命名空間,主要的功能分別提供跨越網路的資料讀寫操作與資料加密功能。

.字元資料讀寫處理

TextReader 與 TextWriter這兩個類別分別提供字元組資料的輸出與輸入功能,而根據所要讀取的資料型態,字元以及字串,分別衍生了兩個子類別,StreamReader以及StringReader,衍生自TextReader,而StreamWriter以及StringWriter則衍生自TextWriter類別。

.資料讀寫

主要包含 BinraryReader 與 BinaryWriter 這兩個類別,分別提供如布林、整數、浮點數等基礎資料型別的存取操作。

下表簡要列舉各類型的資料類別。

資料格式類別
位元組 Stream 以及其衍生的子類別。
二進位格式 BinaryReader以及BinaryWriter
文字格式 TextReader、TextWriter以及這兩個類別底下衍生的子類別。








沒有留言: