天天看點

命名空間System.IO

基本介紹:System.IO 命名空間提供讀寫檔案和資料流的類型、基本檔案和目錄支援的類型。

原文:http://blog.sina.com.cn/s/blog_48a45b950100erhz.html

         http://edu.cnzz.cn/201510/977513da.shtml

主要的類

  • 位元組流: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、FilenameOptions、FileShare、 FileMode、SearchOption、SeekOrigin、DirveType
  • IO異常:IOException、FileLoadException、DriveNotFoundException、FileNotFoundException、 DirectoryNotFoundException、PathTooLongException、EndOfStreamException

C#檔案的輸入輸出

       檔案 是存儲在磁盤中帶有指定名稱和目錄路徑的資料集合。當打開檔案進行讀寫時,它變成一個 流。

從根本上說,流是通過通信路徑傳遞的位元組序列。有兩個主要的流:輸入流 和 輸出流。輸入流用于從檔案讀取資料(讀操作),輸出流用于向檔案寫入資料(寫操作)。

C#IO類

    System.IO 命名空間有各種不同的類,用于執行各種檔案操作,如建立和删除檔案、讀取或寫入檔案,關閉檔案等。下表列出了一些 System.IO 命名空間中常用的非抽象類:

命名空間System.IO

位元組流

命名空間System.IO

       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流

命名空間System.IO

       BinaryReader :用特定的編碼從一個輸入流中讀取二進制資料,預設是UTF-8編碼。

       BinaryWriter :用特定編碼以二進制格式向輸出流中寫入簡單資料類型,預設是UTF-8編碼。

字元IO流

命名空間System.IO

        TextReader :是讀取字元資料的抽象基類,是StreamReader和StringReader的基類。

        TextWriter :是寫入字元資料的抽象基類,是StreamWriter和StringWriter的基類。

檔案系統操作

命名空間System.IO
命名空間System.IO

        DirectoryInfo、FileInfo:都繼承于抽象基類FileSystemInfo,它們都是密封類,無法繼承。

        DriveInfo:也是密封類,無法繼承,但是它不是繼承于FileSystemInfo,而是object。

命名空間System.IO

       File、Directory、Path:它們都是靜态的工具類,用于操作檔案、目錄和路徑。

IO枚舉

命名空間System.IO

IO異常     

命名空間System.IO

FileStream 類

    System.IO 命名空間中的 FileStream 類有助于檔案的讀寫與關閉。該類派生自抽象類 Stream。

    您需要建立一個 FileStream 對象來建立一個新的檔案,或打開一個已有的檔案。建立 FileStream 對象的文法如下:

FileStream <object_name> = new FileStream( <file_name>,      
<FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
 例如,建立一個 FileStream 對象 F 來讀取名為 sample.txt 的檔案:
      
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);      

 執行個體:下面的程式示範了 FileStream 類的用法:

命名空間System.IO
命名空間System.IO

C# 進階檔案操作

   上面的執行個體示範了 C# 中簡單的檔案操作。但是,要充分利用 C# System.IO 類的強大功能,您需要知道這些類常用的屬性和方法。

   在下面的章節中,我們将讨論這些類和它們執行的操作。請單擊連結詳細了解各個部分的知識:

   文本檔案的讀寫:它涉及到文本檔案的讀寫。StreamReader和StreamWriter類有助于完成文本檔案的讀寫。

  二進制檔案的讀寫:它涉及到二進制檔案的讀寫。BinaryReader和BinaryWrite類有助于完成二進制檔案的讀寫。

  Windows檔案系統的操作:它讓C#程式員能夠浏覽并定位windows檔案和目錄。

轉載于:https://www.cnblogs.com/llljpf/p/6617976.html