位置:首頁 > 高級語言 > C#教學 > C#文件I/O

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類有助於讀取,寫入和關閉文件。這個類派生自抽象類流。

需要創建一個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類的無限權力,你需要知道常用屬性和這些類的方法。

我們將討論這些類和它們執行的操作,在下麵的章節。請提供到達各個部分的鏈接:

主題和描述
讀取和寫入文本文件
它包括讀出和寫入到文本文件。StreamReader和StreamWriter類可以幫助來完成它
讀取和寫入二進製文件
它包括讀出和寫入到二進製文件。 BinaryReader在該和的BinaryWriter類有助於實現這一目標
操縱Windows文件係統
它提供了一個C#程序員來瀏覽和查找Windows文件和目錄的能力