C FileStream與Stream類區別

2021-08-28 10:49:11 字數 1099 閱讀 1395

學習流的使用時(stream類),逐步遇到新的理解,記錄一下

1、filestream流是處理byte,預設utf8型別

當你使用wirte方法時將非byte型別的輸入內容,先將內容通過轉換為位元組

filestream fs = new filestream(@"c:\text.txt", filemode.create);

string message = "this is example for filestream";

byte writemesaage = encoding.utf8.getbytes(message);

fs.write(writemesaage, 0, writemesaage.length);

2、streamwirte流是針對char,可以自定義字元型別,預設utf8型別

streamwriter sw = new streamwriter(@"c:\text.txt");

sw.write("this is streamwriter");

針對流寫入方式是先將內容寫入緩衝區,待緩衝區滿時會寫入文字中,但是可能的是還有一小部分並沒有寫入,需要fs.fush()/sw.flush()將緩衝區清除,將內容寫入文字中。flush()與closed()的區別在與flush()不會關閉文字,但是兩則都可以將內容寫入文字中。

但是如果兩個filestream與stream類對同乙個文字進行操作時,最會執行下列兩句將報錯

fs.close();//關閉檔案流

sw.close();//關閉stream物件和基礎流

所以只需執行sw.close()即可。

filestream 的優缺點:

優:使用 filestream 類對檔案系統上的檔案進行讀取、寫入、開啟和關閉操作,並對其他與檔案相關的作業系統控制代碼進行操作,如管道、標準輸入和標準輸出。讀寫操作可以指定為同步或非同步操作。filestream 對輸入輸出進行緩衝,從而提高效能。

缺:最好只對byte進行操作,如包含中文還需要轉換型別,太過麻煩

stream類的優缺點:

優:可以針對char,讀字元要求不高,可以針對中文的寫入與讀取

缺:效能沒有filestream 好

以上個人看法,記錄一下

C FileStream常用的屬性與方法總結

對流進行操作時要引用 using system.io 命名空間 filestream常用的屬性和方法 屬性 canread 判斷當前流是否支援讀取,返回bool值,true表示可以讀取 canwrite 判斷當前流是否支援寫入,返回bool值,true表示可以寫入 方法 read 從流中讀取資料,返...

C FileStream複製大檔案

即每次複製檔案的一小段,以節省總記憶體開銷。當然,本機複製也可以採用.net內部的system.io.file.copy方法。複製檔案 要複製的檔案 要儲存的位置 每次複製的長度 private void copyfile string fromfile,string tofile,int leng...

str與repr的區別

python列印值的時候會保持該值在python 中的狀態,不是使用者所希望看到的狀態。而使用print列印值則不一樣,print列印出來的值是使用者所希望看到的狀態。例如 hello,world hello,world python列印出來的值是給python理解的,這裡python理解為字串,所...