C# 文件 I/O

2018-09-27 16:28 更新

文件 I/O

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

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

I/O 類

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

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

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

FileStream 類

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

你需要創(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ù)描述
FileModefileMode 枚舉定義了各種方法來打開文件。fileMode 枚舉的成員是:
Append: 打開一個已有的文件,并將光標放置在文件的末尾。如果文件不存在,則創(chuàng)建文件。
Create: 它創(chuàng)建一個新的文件
CreateNew: 指定操作系統(tǒng)應創(chuàng)建一個新的文件。如果文件已存在,則拋出異常。
Open: 它會打開一個現(xiàn)有的文件
OpenOrCreate: 指定操作系統(tǒng)應打開一個已有的文件。如果文件不存在,則用指定的名稱創(chuàng)建一個新的文件打開。
Truncate: 打開一個已有的文件,文件一旦打開,就將被截斷為零字節(jié)大小。
FileAccessFileAccess 枚舉成員有:Read,ReadWrite 和 Write。
FileShareFileShare 枚舉有以下成員:
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();
            }
        }
    }

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

    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 文件和目錄。
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號