學習流的使用時(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 好
以上個人看法,記錄一下
————————————————
版權聲明:本文爲CSDN博主「ai_feng123」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/ai_feng123/article/details/82849236