在.NET框架中進行的所有IO操作都要用到流(Stream)。
System.IO命名空間中包含許多IO相關的類,C#文件讀寫的類幾乎都在其中,下面對其進行詳細介紹。
主要類列表:
| 類 | 說明 |
| BinaryReader | 用特定編碼將基元數據讀作二進制值。 |
| BinaryWriter | 以二進制形式將基元類型寫入流,并支持用特定的編碼寫入字符串 |
| BufferedStream | 給另一流上的讀寫操作添加一個緩沖層。 |
| Directory | 靜態實用類,提供用于創建、移動和枚舉目錄和子目錄的靜態方法 |
| DirectoryInfo | 表示磁盤上的物理目錄,此類包含處理目錄的實例方法。 |
| DriveInfo | 提供有關驅動器信息的訪問。 |
| File | 提供用于創建、復制、刪除、移動和打開文件的靜態方法,并協助創建FileStream對象。 |
| FileInfo | 提供用于創建、復制、刪除、移動和打開文件的實例方法,并幫助創建FileStream對象。 |
| FileStream | 文件Stream對象,既支持同步讀寫文件,也支持異步讀寫操作。 |
| FileSystemInfo | FileInfo和DirectoryInfo的基類,根據多態性可以同時處理文件和目錄 |
| MemoryStream | 存儲區為內存的流。 |
| Path | 對包含文件或目錄信息的string執行操作的靜態成員。 |
| StreamReader | 實現TextReader,使其以特定編碼從流中讀取字符數據,可以使用FileStream將其創建為基類 |
| StreamWriter | 實現TextWriter,使其以特定編碼向流中寫字符數據,可以使用FileStream將其創建為基類 |
| StringReader | 實現從字符串進行讀取的TextReader |
| StringWriter | 實現一個用于將信息寫入字符串的TextWriter。該信息存儲在StringBuilder中 |
| TextReader | 表示可讀取連續字符的讀取器 |
| TextWriter | 表示可編寫一個有序字符的編寫器。抽象類。 |
| System.MarshalByRefObject | .NET中用于遠程操作的類的基類,它允許在不同應用程序之間編組數據。下面的項都在System.IO中。 |
| FileSystemWatcher | FileSystemWatcher 用于監控文件和目錄,提供了這些文件和目錄發生變化時應用程序可以捕獲的事件。 |
另外在System.IO.ComPRession名稱空間的類,可用于GZip或Deflate壓縮文件的讀寫:
從上表可以看到有多種可用于處理文件IO的流,最重要的類型是FileStream類,它提供了讀寫文件的功能。其他的還有BufferedStream, CryptoStream, MemoryStream和NetworkStream等。
| 方法 | 說明 |
| Copy | 將文件從源位置復制到目標位置 |
| Create | 在指定路徑上創建文件 |
| Delete | 刪除文件,如果文件不存在,不引發異常 |
| Exists | 確定指定的文件是否存在 |
| Move | 將指定文件移動新位置,并提供指定新文件名選項 |
| Open | 返回指定路徑上的FileStream對象 |
| CreateText | 創建或打開一個文件用于寫入UTF-8文本 |
| GetCreationTime | 返回指定文件或目錄的創建日期和時間 |
| GetLastaccessTime | 返回上次訪問指定文件或目錄的日期和時間 |
| GetLastWriterTime | 返回上次寫入指定文件或目錄的日期和時間 |
| OpenRead | 打開現有文件進行讀取 |
| OpenText | 打開現有UTF-8文本文件進行讀取 |
| OpenWriter | 打開現有文件進行寫入 |
| ReadAllBytes | 打開一個文本文件,將文件的內容讀入一個字節數組,然后關閉該文件 |
| ReadAllLines | 打開一個文本文件,將文件的所有行讀取一個字符串數組,然后關閉該文件 |
| ReadAllText | 打開一個文本文件,將文件的所有內容讀入一個字符串,然后關閉該文件 |
| Replace | 使用其他文件的內容替換指定文件的內容,這一過程將刪除原始文件,并創建被替換文件的備份。 |
FileInfo類和File類有許多方法相同,但不是靜態類,可實例化,用于表示磁盤或網絡位置上的文件。如:
FileInfo aFile = new FileInfo("Version.hpp");FileInfo和File類由許多類似的方法,如下:
FileInfo aFile = new FileInfo("Version.hpp");if(aFile.Exists) Console.WriteLine("File Exists");if(File.Exists("Version.hpp")) Console.WriteLine("File Exists");這段代碼檢查文件Version.hpp是否存在,這里沒有指定目錄信息,此時為當前工作目錄。
什么使用使用FileInfo,什么時候使用File,可以遵循以下原則:
FileInfo類也提供了許多與底層文件相關的屬性,大多屬性繼承于FileSystemInfo,可應用于File和Directory類。FileSystemInfo類的屬性如下:
| 屬性 | 說明 |
| Attributes | 使用FileAttributes枚舉,獲取或設置當前文件或目錄的特性。 |
| CreationTime, CreationTimeUtc | 獲取當前文件的創建日期和時間,可以使用UTC和非UTC版本 |
| Extension | 獲取文件擴展名,只讀屬性 |
| Exists | 確定文件是否存在,只讀屬性,在FileInfo和DirectoryInfo中被重寫 |
| FullName | 文件完整路徑,只讀 |
| LastAccessTime, LastAccessTimeUtc | 獲取或設置上次訪問當前文件的日期和時間,包含UTC和非UTC版本 |
| LastWriteTime, LastWriteTimeUtc 學習交流
熱門圖片
猜你喜歡的新聞
新聞熱點 2019-10-23 09:17:05
2019-10-21 09:20:02
2019-10-21 09:00:12
2019-09-26 08:57:12
2019-09-25 08:46:36
2019-09-25 08:15:43
疑難解答 |