C# 文件的輸入與輸出(一)
一個?文件?是一個存儲在磁盤中帶有指定名稱和目錄路徑的數據集合。當打開文件進行讀寫時,它變成一個?流。
從根本上說,流是通過通信路徑傳遞的字節序列。有兩個主要的流:輸入流?和?輸出流。輸入流用于從文件讀取數據(讀操作),輸出流用于向文件寫入數據(寫操作)。
C# I/O 類
System.IO 命名空間有各種不同的類,用于執行各種文件操作,如創建和刪除文件、讀取或寫入文件,關閉文件等。
下表列出了一些 System.IO 命名空間中常用的非抽象類:
FileStream 類
System.IO 命名空間中的?FileStream?類有助于文件的讀寫與關閉。該類派生自抽象類 Stream。
您需要創建一個?FileStream?對象來創建一個新的文件,或打開一個已有的文件。創建?FileStream?對象的語法如下:
FileStream
例如,創建一個 FileStream 對象?F?來讀取名為?sample.txt?的文件:
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
FileMode?枚舉定義了各種打開文件的方法。FileMode 枚舉的成員有:
Append:打開一個已有的文件,并將光標放置在文件的末尾。如果文件不存在,則創建文件。
Create:創建一個新的文件。如果文件已存在,則刪除舊文件,然后創建新文件。
CreateNew:指定操作系統應創建一個新的文件。如果文件已存在,則拋出異常。
Open:打開一個已有的文件。如果文件不存在,則拋出異常。
OpenOrCreate:指定操作系統應打開一個已有的文件。如果文件不存在,則用指定的名稱創建一個新的文件打開。
Truncate:打開一個已有的文件,文件一旦打開,就將被截斷為零字節大小。然后我們可以向文件寫入全新的數據,但是保留文件的初始創建日期。如果文件不存在,則拋出異常。
FileAccess?枚舉的成員有:Read、ReadWrite?和?Write。
FileShare?枚舉的成員有:
Inheritable:允許文件句柄可由子進程繼承。Win32 不直接支持此功能。
None:謝絕共享當前文件。文件關閉前,打開該文件的任何請求(由此進程或另一進程發出的請求)都將失敗。
Read:允許隨后打開文件讀取。如果未指定此標志,則文件關閉前,任何打開該文件以進行讀取的請求(由此進程或另一進程發出的請求)都將失敗。但是,即使指定了此標志,仍可能需要附加權限才能夠訪問該文件。
ReadWrite:允許隨后打開文件讀取或寫入。如果未指定此標志,則文件關閉前,任何打開該文件以進行讀取或寫入的請求(由此進程或另一進程發出)都將失敗。但是,即使指定了此標志,仍可能需要附加權限才能夠訪問該文件。
Write:允許隨后打開文件寫入。如果未指定此標志,則文件關閉前,任何打開該文件以進行寫入的請求(由此進程或另一進過程發出的請求)都將失敗。但是,即使指定了此標志,仍可能需要附加權限才能夠訪問該文件。
Delete:允許隨后刪除文件。
C# 任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。