C#檔(I/O)

檔是存儲在具有特定名稱和目錄路徑的磁片中的數據的集合。當檔打開以進行讀取或寫入時,它將成為流。

流基本上是通過通信路徑的位元組序列。有兩個主要流:輸入流和輸出流。輸入流用於從檔讀取數據(讀取操作),輸出流用於寫入檔(寫入操作)。

C# I/O類

System.IO命名空間具有各種類,用於執行許多檔操作,例如:創建和刪除檔,從檔讀取或寫入檔,關閉檔等。

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

I/O類 描述
BinaryReader 從二進位流中讀取原始數據。
BinaryWriter 以二進位格式寫入原始數據。
BufferedStream 一個位元組流的臨時存儲。
Directory 有助於操縱目錄結構。
DirectoryInfo 用於對目錄執行操作
DriveInfo 提供驅動器的資訊。
File 用於幫助操縱檔。
FileInfo 用於對檔執行操作。
FileStream 用於讀取和寫入檔中的任何位置。
MemoryStream 用於隨機訪問存儲在內存中的流式數據。
Path 執行路徑資訊的操作。
StreamReader 用於從位元組流讀取字元。
StreamWriter 用於將字元寫入到流中。
StringReader 用於從字串緩衝區讀取。
StringWriter 用於寫入字串緩衝區。

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);
  • FileMode - FileMode枚舉器定義打開檔的各種方法。FileMode枚舉器的成員有:

    • Append:它打開一個現有的檔,並將游標放在檔的最後,或者如果該檔不存在則創建此檔。
    • Create:它創建一個新檔。
    • CreateNew: 它向操作系統指定它應該創建一個新的檔。
    • Open:它打開一個現有檔。
    • OpenOrCreate:它向操作系統指定它應該打開一個檔(如果存在),否則應該創建一個新的檔。
    • Truncate:它打開一個現有檔,並將其大小截斷為零位元組。
  • FileAccess - FileAccess枚舉器有成員:ReadReadWriteWrite

  • 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類的強大功能,需要知道這些類常用的屬性和方法。

System.IO類中一此最常用的方法和示例如下所列 -


上一篇: C#異常處理 下一篇: C#屬性