C 對於StreamWriter類的使用

2021-09-29 19:55:25 字數 870 閱讀 3446

在streamwriter類中包含乙個私有的stream,

如果你使用public streamwriter(string path);這個建構函式,streamwriter會主動建立乙個filestream

如果你使用public streamwriter(stream stream);這個建構函式,streamwriter則不會再建立filestream而是直接使用你傳入的stream 。

其次,無論你是使用的哪個建構函式,streamwriter在close的時候都會關閉filestream。

你可以嘗試如下**:

filestream fs = new filestream(@"d:\test.txt" , filemode.openorcreate);

streamwriter sw = new streamwriter(fs);

sw.close( );

fs.close( );

在 sw.close( );執行完畢後,其實fs已經被關閉了。因此 fs.close( );其實是可以省略的。

當然,這樣的寫法不會有任何問題,因為dispose不會被執行兩次。但是,

sw.close( );

fs.close( );

這兩行**不可以交換順序,如果先執行 fs.close( );再執行 sw.close( );將引發異常。

因為在streamwriter的close函式呼叫過程中,將呼叫flush函式,而此時fs已經被關閉,flush將產生異常。

如果想詳細了解,可以檢視streamwriter的源**。

其實,在這種多重複用關係的物件中,都要遵循乙個先建立,後關閉的原則。即先進後出,後進先出。就像棧一樣。

C 使用 StreamWriter 寫入資料

networkstream 類 memorystream類 和 filestream 類都提供了以位元組為基本單位的讀寫方法,但是這種方法首先將待寫入的資料轉換為位元組序列後才能進行讀寫,當操作的是使用字元編碼的文字資料時,使用很不方便。因此,在操作文字資料時,一般使用streamwriter 類與...

C 使用StreamWriter類寫入檔案檔案

除了使用filestream類讀寫文字檔案,net還提供了streamwriter類和streamreader類專門處理文字檔案。這兩個類從底層封裝了檔案流,讀寫時不用重新編碼,提供了更檔案的讀寫方式。streamwriter類允許將字元和字串寫入到檔案中,不必轉換為位元組,它處理底層的轉換,向fi...

StreamWriter儲存檔案

if fi.exists endregion else 在iis裡面如果你的web.config沒有配置使用者許可權的話,是不允許寫的,但配置了許可權又會太大了,所以我們可以通過另外一種方式來實現,檔案的寫入。如圖 這裡我們可以對某乙個資料夾付許可權,方法是對這資料夾點右鍵,找到安全,若是serve...