鍍金池/ 教程/ C#/ 文件 I/O
循環(huán)
正則表達式
概述
委托
多態(tài)性
字符串
繼承
結(jié)構(gòu)體
集合
變量
不安全代碼
判斷
反射
異常處理
可空類型
方法
數(shù)據(jù)類型
命名空間
文件 I/O
類型轉(zhuǎn)換
屬性
程序結(jié)構(gòu)
事件
接口
預(yù)處理指令
運算符
多線程
匿名方法
索引器
泛型
封裝
常量和文字
基本語法
特性
數(shù)組
環(huán)境配置
運算符重載
枚舉

文件 I/O

文件是存儲在磁盤具有特定名稱和目錄路徑的數(shù)據(jù)的集合。當(dāng)一個文件被打開閱讀或書寫時,就變成了流。

流基本上是通過通信路徑中的字節(jié)順序。主要有兩個流:輸入流和輸出流。輸入流用于從文件系統(tǒng)中讀取數(shù)據(jù),輸出流用于向文件中寫數(shù)據(jù)。

I/O 類

System.IO 的命名空間有多種類,這些類被用于執(zhí)行大量和文件有關(guān)的操作,例如創(chuàng)建和刪除文件,讀寫文件,關(guān)閉文件等等。

下面的表格中列出了一些 System.IO 命名空間中常用的非抽象類:

I/O 類 描述
BinaryReader 從二進制流讀取原始數(shù)據(jù)
BinaryWriter 以二進制形式寫入原始數(shù)據(jù)
BufferedStream 字節(jié)流的臨時存儲
Directory 用于操作目錄結(jié)構(gòu)
DirectoryInfo 用于創(chuàng)建復(fù)合條件指令。
DriveInfo 用于執(zhí)行目錄操作
File 用于操作文件
FileInfo 用于執(zhí)行文件操作
FileStream 用于讀寫文件中任意位置的內(nèi)容
MemoryStream 用于隨機存取存儲器中存儲的流數(shù)據(jù)
Path 用于執(zhí)行有關(guān)路徑信息的操作
StreamReader 用于從字節(jié)流中讀取字符
StreamWriter 用于向流中寫字符
StringReader 用于讀取字符串?dāng)?shù)組
StringWriter 用于寫入字符串?dāng)?shù)組

FileStream 類

System.IO 命名空間中的 FileStream 類有助于讀取,寫入和關(guān)閉文件。這個類派生自抽象類流。

你需要創(chuàng)建一個 FileStream 對象用于創(chuàng)建一個新的文件或打開一個已存在的文件。創(chuàng)建 FileStream 對象的語法如下:

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

例如,創(chuàng)建一個 FileStream 對象F,讀取一個名為 sample.txt 的文件的方法如下:

    FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
參數(shù) 描述
FileMode fileMode 枚舉定義了各種方法來打開文件。fileMode 枚舉的成員是:
Append: 打開一個已有的文件,并將光標(biāo)放置在文件的末尾。如果文件不存在,則創(chuàng)建文件。
Create: 它創(chuàng)建一個新的文件
CreateNew: 指定操作系統(tǒng)應(yīng)創(chuàng)建一個新的文件。如果文件已存在,則拋出異常。
Open: 它會打開一個現(xiàn)有的文件
OpenOrCreate: 指定操作系統(tǒng)應(yīng)打開一個已有的文件。如果文件不存在,則用指定的名稱創(chuàng)建一個新的文件打開。
Truncate: 打開一個已有的文件,文件一旦打開,就將被截斷為零字節(jié)大小。
FileAccess FileAccess 枚舉成員有:Read,ReadWrite 和 Write。
FileShare FileShare 枚舉有以下成員:
Inheritable: 允許文件句柄可由子進程繼承。
None: 它拒絕共享當(dāng)前文件
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();
            }
        }
    }

編譯執(zhí)行上述代碼,得到如下結(jié)果:

    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文件系統(tǒng)的操作
它讓 C# 程序員能夠瀏覽并定位 Windows 文件和目錄。
上一篇:特性下一篇:變量