學習流的使用時(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理解為字串,所...