檔是存儲在具有特定名稱和目錄路徑的磁片中的數據的集合。當檔打開以進行讀取或寫入時,它將成為流。
流基本上是通過通信路徑的位元組序列。有兩個主要流:輸入流和輸出流。輸入流用於從檔讀取數據(讀取操作),輸出流用於寫入檔(寫入操作)。
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
枚舉器有成員:Read
,ReadWrite
和Write
。- 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
類中一此最常用的方法和示例如下所列 -
讀取和寫入文本檔 - 它涉及到閱讀和寫入文本檔。
StreamReader
和StreamWriter
類有助於完成它。讀取和寫入二進位檔 - 它涉及從二進位檔讀取和寫入。
BinaryReader
和BinaryWriter
類有助於完成此操作。操作Windows檔系統 - 它為 C# 程式員提供流覽和查找Windows檔和目錄的能力。