System.IO 命名空間包含允許:讀寫文件、數據流的類型以及提供基本文件和目錄支持的類型。
在這個命名空間中主要的類有:
- 字節流:Stream、BufferedStream、MemoryStream、UnmanagedMemoryStream、FileStream
- 二進制IO流:BinaryReader、BinaryWriter
- 字符IO流:TextReader、TextWriter、StreamReader、StreamWriter、StringReader、StringWriter
- 文件系統操作:File、Path、Directory、FileSystemInfo、FileInfo、DirectoryInfo、DriveInfo
- IO枚舉:FileAccess、FileAttributes、FileOptions、FileShare、FileMode、SearchOption、SeekOrigin、DriveType
- IO異常:IOException、FileLoadException、DriveNotFoundException、FileNotFoundException、DirectoryNotFoundException、PathTooLongException、EndOfStreamException
字節流:
流涉及三個基本操作:(1)可以讀取流(2)可以寫入流(3)可以支持查找。流可能只支持這些功能中的一部分,通過使用 CanRead、CanWrite 和 CanSeek 屬性,應用程序可以查詢流的功能。在實現 Stream 的派生類時,必須提供Read和Write方法的實現。異步方法 BeginRead 、EndRead 、BeginWrite 和 EndWrite 通過同步方法 Read 和 Write 實現。不要重寫Close方法,而應將所有清理邏輯放入Dispose方法中。
FileStream:代表了能夠訪問一個文件 的IO流。FileStream 對輸入輸出進行緩沖,從而提高性能,因此不需要像Java那樣利用流的包裝來達到緩沖的目的。FileStream 對象支持使用 Seek 方法對文件進行隨機訪問。文件使用完之后必須確保調用FileStream的Dispose方法,特別是在磁盤空間有限的環境中。
BufferedStream:給另一流上的讀寫操作添加一個緩沖層。它是密封類,無法繼承。緩沖區可提高讀取和寫入性能。使用緩沖區可進行讀取或寫入,但不能同時進行這兩種操作。
MemoryStream:創建支持存儲區為內存的流。它創建的流以內存而不是磁盤或網絡連接作為支持存儲區。MemoryStream 封裝以無符號字節數組形式存儲的數據,該數組在創建 MemoryStream 對象時被初始化,或者該數組可創建為空數組。可在內存中直接訪問這些封裝的數據。
UnmanagedMemoryStream:提供從托管代碼訪問非托管內存塊的能力。
二進制IO流:
BinaryReader:用特定的編碼從一個輸入流中讀取二進制數據,默認是UTF-8編碼。
BinaryWriter:用特定編碼以二進制格式向輸出流中寫入簡單數據類型,默認是UTF-8編碼。
BinaryWriter:用特定編碼以二進制格式向輸出流中寫入簡單數據類型,默認是UTF-8編碼。
字符IO流:

TextReader:是讀取字符數據的抽象基類,是StreamReader和StringReader的基類。
TextWriter:是寫入字符數據的抽象基類,是StreamWriter和StringWriter的基類。
TextWriter:是寫入字符數據的抽象基類,是StreamWriter和StringWriter的基類。
文件系統操作:



DirectoryInfo、FileInfo:都繼承於抽象基類FileSystemInfo,它們都是密封類,無法繼承。
DriveInfo:也是密封類,無法繼承,但是它不是繼承於FileSystemInfo,而是object。
File、Directory、Path:它們都是靜態的工具類,用於操作文件、目錄和路徑。
DriveInfo:也是密封類,無法繼承,但是它不是繼承於FileSystemInfo,而是object。
File、Directory、Path:它們都是靜態的工具類,用於操作文件、目錄和路徑。
IO枚舉:

IO異常:
