檔案和流IO
阿新 • • 發佈:2021-12-02
檔案和流是指在儲存媒介中傳入或者傳出資料。在.net中,system.io名稱空間包含了以非同步和同步的方式對資料進行讀取和寫入操作的型別(class)。
1.檔案
檔案是一個有位元組組成的有序的命名集合,它具有永久儲存。在處理檔案時。你將處理目錄路徑、磁碟儲存、檔案和目錄名稱。相反流是一個位元組序列,可用於對檔案進行讀取和寫入操作。
常用的檔案和目錄類:
類名稱 | 描述 |
File | 靜態類,提供了用於建立、複製、刪除、移動和開啟的靜態方法。 |
FileInfo | 例項類。提供了與File一樣的例項方法 |
Directory | 靜態類,提供了建立、移動、和列舉目錄和子目錄的發放。 |
DirectoryInfo | 例項類,與Directory一樣的例項方法。 |
2.流
Stream類是所有流的基類,stream支援讀取和寫入位元組,stream類及其派生類提供了資料來源和儲存庫的常用方法,程式設計師不必瞭解作業系統和基礎裝置的具體實現細節。
stream有三個基本的操作:
- 讀取:將資料從流傳輸到資料結構。
- 寫入:將資料從資料來源傳輸到流。
- 查詢:對流中的當前位置進行查詢或者修改。
在.net中一下常見的流類如下:
類名稱 | 描述 |
FileStream | 用於對檔案進行讀取和寫入操作 |
IsolatedStorageFileStream | 用於對獨立儲存中的檔案進行讀取或者寫入操作。 |
MemoryStream | 用於對記憶體中的資料進行讀取或者寫入操作 |
BufferedStream | 改進讀取和寫入操作的效能 |
NetWorkStream | 網路套接字進行讀取和寫入 |
PipeStream | 匿名和命名管道進行讀取和寫入 |
CryptoStream | 將資料流連結到加密轉化 |
3.讀取器和編寫器。
.Net 提供了在流中讀取和寫入已編碼字串的型別。通常,流用於位元組輸入和輸出,讀取器和編寫器型別處理字元和位元組之間的來回轉化,以便流完成操作。每個讀取器和編寫器都與流關聯。可以通過baseStream屬性來進行檢索。
一些常用的讀取器和編寫器如下:
類名稱 | 描述 |
BinaryReader和BinaryWriter | 用於將基元資料作為二進位制值進行讀取和寫入 |
StreamReader和StreamWriter | 通過使用編碼值在字元和位元組之間來回讀取和寫入字元 |
StringReader和StringWriter | 從字串讀取字元和將字元寫入字串中 |
TextReader和TextWriter |
用作其他讀寫器和編寫器的抽象基類 |
4.非同步IO操作
讀取和寫入大量資料會佔用大量的資源,如果你的應用程式要保持對使用者的響應及時,那麼應該使用非同步方法來執行這些任務,.Net的IO操作中的非同步操作都是包含Async,比如CopyToAsync、FlushAsync、ReadAsync,使用這些方法的時候需要與async和await關鍵字一起使用。