【c#教程】C# 檔案的輸入與輸出

來源:互聯網
上載者:User

C# 檔案的輸入與輸出

一個 檔案 是一個儲存在磁碟中帶有指定名稱和目錄路徑的資料集合。當開啟檔案進行讀寫時,它變成一個 流。

從根本上說,流是通過通訊路徑傳遞的位元組序列。有兩個主要的流:輸入資料流 和 輸出資料流。輸入資料流用於從檔案讀取資料(讀操作),輸出資料流用於向檔案寫入資料(寫操作)。

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:允許檔案控制代碼可由子進程繼承。Win32 不直接支援此功能。

None:謝絕共用當前檔案。檔案關閉前,開啟該檔案的任何請求(由此進程或另一進程發出的請求)都將失敗。

Read:允許隨後開啟檔案讀取。如果未指定此標誌,則檔案關閉前,任何開啟該檔案以進行讀取的請求(由此進程或另一進程發出的請求)都將失敗。但是,即使指定了此標誌,仍可能需要附加許可權才能夠訪問該檔案。

ReadWrite:允許隨後開啟檔案讀取或寫入。如果未指定此標誌,則檔案關閉前,任何開啟該檔案以進行讀取或寫入的請求(由此進程或另一進程發出)都將失敗。但是,即使指定了此標誌,仍可能需要附加許可權才能夠訪問該檔案。

Write:允許隨後開啟檔案寫入。如果未指定此標誌,則檔案關閉前,任何開啟該檔案以進行寫入的請求(由此進程或另一進過程發出的請求)都將失敗。但是,即使指定了此標誌,仍可能需要附加許可權才能夠訪問該檔案。

Delete:允許隨後刪除檔案。

執行個體

下面的程式示範了 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 檔案和目錄。

以上就是【c#教程】C# 檔案的輸入與輸出的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.