stram流char[]保存,支持中文,Filestram需要先轉byte[]才能使用,但是性能更好《轉載》

學習流的使用時(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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章