C# - 檔案 I/O



一個檔案是儲存在磁碟上的一組資料,具有特定的名稱和目錄路徑。當開啟檔案進行讀取或寫入時,它就變成了一個

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

C# I/O 類

System.IO 名稱空間包含各種用於執行許多檔案操作的類,例如建立和刪除檔案、讀取或寫入檔案、關閉檔案等。

下表顯示了 System.IO 名稱空間中一些常用的非抽象類:

序號 I/O 類及描述
1

BinaryReader

從二進位制流讀取原始資料。

2

BinaryWriter

以二進位制格式寫入原始資料。

3

BufferedStream

位元組流的臨時儲存。

4

Directory

幫助操作目錄結構。

5

DirectoryInfo

用於執行目錄操作。

6

DriveInfo

提供驅動器資訊。

7

File

幫助操作檔案。

8

FileInfo

用於執行檔案操作。

9

FileStream

用於讀取和寫入檔案中的任何位置。

10

MemoryStream

用於對儲存在記憶體中的流資料進行隨機訪問。

11

Path

執行路徑資訊操作。

12

StreamReader

用於從位元組流讀取字元。

13

StreamWriter

用於向流寫入字元。

14

StringReader

用於從字串緩衝區讀取。

15

StringWriter

用於向字串緩衝區寫入。

FileStream 類

System.IO 名稱空間中的FileStream類有助於讀取、寫入和關閉檔案。此類派生自抽象類Stream。

您需要建立一個FileStream物件來建立一個新檔案或開啟一個現有檔案。建立FileStream物件的語法如下:

FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>,
   <FileAccess Enumerator>, <FileShare Enumerator>);

例如,我們建立一個名為sample.txt的檔案的FileStream物件F,如下所示:

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
   FileShare.Read);
序號 引數及描述
1

FileMode

FileMode列舉定義了開啟檔案的各種方法。FileMode列舉的成員有:

  • Append - 開啟現有檔案並將游標置於檔案末尾,如果檔案不存在則建立檔案。

  • Create - 建立一個新檔案。

  • CreateNew - 指定作業系統應建立一個新檔案。

  • Open - 開啟現有檔案。

  • OpenOrCreate - 指定作業系統如果檔案存在則開啟檔案,否則建立新檔案。

  • Truncate - 開啟現有檔案並將大小截斷為零位元組。

2

FileAccess

FileAccess列舉具有成員:ReadReadWriteWrite

3

FileShare

FileShare列舉具有以下成員:

  • Inheritable - 允許檔案控制代碼將繼承傳遞給子程序。

  • None - 拒絕共享當前檔案。

  • Read - 允許開啟檔案進行讀取。

  • ReadWrite - 允許開啟檔案進行讀取和寫入。

  • Write - 允許開啟檔案進行寫入。

示例

以下程式演示了FileStream類的用法:

using System;
using System.IO;

namespace FileIOApplication {
   class Program {
      static void Main(string[] args) {
         FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, 
            FileAccess.ReadWrite);
         
         for (int i = 1; i <= 20; i++) {
            F.WriteByte((byte)i);
         }
         F.Position = 0;
         for (int i = 0; i <= 20; i++) {
            Console.Write(F.ReadByte() + " ");
         }
         F.Close();
         Console.ReadKey();
      }
   }
}

編譯並執行上述程式碼後,將產生以下結果:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1

C# 中的高階檔案操作

前面的示例提供了 C# 中簡單的檔案操作。但是,要利用 C# System.IO 類的強大功能,您需要了解這些類的常用屬性和方法。

序號 主題及描述
1 讀取和寫入文字檔案

它涉及讀取和寫入文字檔案。StreamReaderStreamWriter類有助於實現此目的。

2 讀取和寫入二進位制檔案

它涉及讀取和寫入二進位制檔案。BinaryReaderBinaryWriter類有助於實現此目的。

3 操作 Windows 檔案系統

它使 C# 程式設計師能夠瀏覽和查詢 Windows 檔案和目錄。

廣告