檔案是儲存在具有特定名稱和目錄路徑的磁碟中的資料的集合。當檔案開啟以進行讀取或寫入時,它將成為流。
流基本上是通過通訊路徑的位元組序列。有兩個主要流:輸入流和輸出流。輸入流用於從檔案讀取資料(讀取操作),輸出流用於寫入檔案(寫入操作)。
System.IO
名稱空間具有各種類,用於執行許多檔案操作,例如:建立和刪除檔案,從檔案讀取或寫入檔案,關閉檔案等。
下表顯示了System.IO
名稱空間中的一些常用的非抽象類:
I/O類 | 描述 |
---|---|
BinaryReader | 從二進位制流中讀取原始資料。 |
BinaryWriter | 以二進位制格式寫入原始資料。 |
BufferedStream | 一個位元組流的臨時儲存。 |
Directory | 有助於操縱目錄結構。 |
DirectoryInfo | 用於對目錄執行操作 |
DriveInfo | 提供驅動器的資訊。 |
File | 用於幫助操縱檔案。 |
FileInfo | 用於對檔案執行操作。 |
FileStream | 用於讀取和寫入檔案中的任何位置。 |
MemoryStream | 用於隨機存取儲存在記憶體中的流式資料。 |
Path | 執行路徑資訊的操作。 |
StreamReader | 用於從位元組流讀取字元。 |
StreamWriter | 用於將字元寫入到流中。 |
StringReader | 用於從字串緩衝區讀取。 |
StringWriter | 用於寫入字串緩衝區。 |
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
列舉器有成員:Read
,ReadWrite
和Write
。
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# 中的System.IO
類的強大功能,需要知道這些類常用的屬性和方法。
System.IO
類中一此最常用的方法和範例如下所列 -
讀取和寫入文字檔案 - 它涉及到閱讀和寫入文字檔案。StreamReader
和StreamWriter
類有助於完成它。
讀取和寫入二進位制檔案 - 它涉及從二進位制檔案讀取和寫入。BinaryReader
和BinaryWriter
類有助於完成此操作。
操作Windows檔案系統 - 它為 C# 程式員提供瀏覽和查詢Windows檔案和目錄的能力。