C#–流與檔案(Stream & File)(一)

來源:互聯網
上載者:User

 

  • 流概念 

 

流失位元組序列的抽象概念,如檔案的操作,輸入/輸出裝置,內部進行通訊的管道等,Stream類及其衍生類別提供這些不同類型的輸入和輸出的一般視圖,這樣的程式員就不必熟悉作業系統和基礎裝置的具體細節,也可以對流進行操作。

流常用的三個基本操作:

1. 讀取流:操作是從流到資料結構的資料轉送

2. 寫入流:該操作時從資料結構到流的資料轉送

3. 流支援尋找:尋找是對流內的當前位置進行查詢與修改

以上三個功能可以通過CanRead ,CanWrite,CanSeek屬性進行設定。

 

Read和Write方法支援讀寫各種不同格式的資料。對於支援尋找功能的流,可以使用Seek和SetLength方法以及Length和Position屬性查詢和修改流當前的位置和長度。

 有些流實現執行資料的本地緩衝以提高效能。對於這樣的流,Flush方法可用於清除內部緩衝區並確保將所有資料寫入資料來源或儲存空間。 

在實現Stream的衍生類別時,必須提供Read和Write方法的實現。非同步方法呼叫BeginRead,EndRead,BeginWrite和EndWrite通過同步方法Read和Write實現。ReadByte和WriteByte可以實現建立一個新的單元位元組數組,然後調用Read和Write實現。

 

 

  • 檔案概述 
檔案在操作時表現為流,即流是從一些輸入中讀取到的一系列位元組。

檔案按資訊在外部儲存空間上齶編碼方式可以分為文字檔和二進位檔案。

 

Stream類是System.IO命名空間中的一個類,在System.IO命名空間中,包含所有允許在資料流和檔案上進行同步和非同步讀取和寫入的類,下面簡單介紹一下常用的類。

1. Directory類:包含了所有操作目錄的靜態方法,如目錄的建立,移動,複製,刪除等

2. DirectoryInfo類:包含了所有操作目錄的執行個體方法,如目錄的各種屬性(名字,建立時間),目錄的各種操作(目錄的建立,是否存在,移動,刪除等)

3. File類:是對檔案的典型操作,提供文本的建立,開啟,複製,刪除,移動等靜態方法。也可以用於擷取檔案和設定檔案的基本資料。

4. FileInfo類:對檔案的典型操作, 提供文本的建立,開啟,複製,刪除,移動等執行個體方法。當檔案需要多次重用時,使用FileInfo類提供的執行個體方法,不可以使用File提供的靜態方法。

5. FileStream類:該類實現了對檔案讀取,寫入,開啟,關閉操作,支援隨機訪問檔案,可以使用同步方式開啟檔案進行讀寫,也可以用非同步方式開啟檔案進行讀寫。

6. Path類:該類對包含檔案或目錄路徑資訊的String執行個體操作,這些操作可以跨平台的方式執行的。

7. MemoryStream類:該類建立起支援儲存區為記憶體的流。

8. StreamReader類:該類可以讀取標準文字檔的內容。即實現一個TextReader。預設編碼格式為UTF-8。

9. StreamWriter類:該類可以往標準文字檔中寫入內容。即實現一個TextWriter。預設編碼格式為UTF-8。

10. StringReader類: 該類實現從字串進行讀取的TextReader。

11. StringWriter類:該類實現將資訊寫入字串,該資訊儲存在基礎的StringBuilder中。

12. TextReader類:該類表示可讀取連續字元系統的閱讀器。

13. TextWriter類:該類表示可以編寫一個有序字元系列的編輯器,是抽象類別。 

 

 程式碼範例:檔案的建立與檔案內容的輸入輸出

 代碼

 1 if(File.Exists(filePath))
 2 {
 3     File.Delete(filePath);
 4 }
 5 FileStream fs=File.Create(filePath,1024);     //建立檔案
 6 Byte[] info=new UTF8Encoding(true).GetBytes("測試內容");
 7 fs.Write(info,0,info.Length);     //向新建立的檔案寫入內容
 8 fs.Close();
 9 
10 using(StreamReader sr=File.OpenText(filePath))
11 {
12     While(sr.ReadLine()!=null)
13         MessageBox.Show(sr.ReadLine());
14 }

 

參考代碼:

 檔案屬性的擷取與設定:/Files/long-gengyun/FileAttribute.rar

顯示檔案夾中的檔案與子檔案夾:/Files/long-gengyun/GetDirectory.rar

檔案的列印輸出:/Files/long-gengyun/FilePrint.rar

電腦系統資訊擷取:/Files/long-gengyun/GetSystemInfo.rar 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.