c# 命名空間之System.IO(繼承關系)


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

 

字節流:

Stream:是所有流的抽象基類。流是字節序列的抽象概念,例如文件、輸入/輸出設備、內部進程通信管道或者 TCP/IP 套接字。
流涉及三個基本操作:(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編碼。
 
字符IO流
TextReader:是讀取字符數據的抽象基類,是StreamReader和StringReader的基類。
TextWriter:是寫入字符數據的抽象基類,是StreamWriter和StringWriter的基類。
 
文件系統操作
 
DirectoryInfo、FileInfo:都繼承於抽象基類FileSystemInfo,它們都是密封類,無法繼承。
DriveInfo:也是密封類,無法繼承,但是它不是繼承於FileSystemInfo,而是object。
File、Directory、Path:它們都是靜態的工具類,用於操作文件、目錄和路徑。
 
IO枚舉:

IO異常:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM