StreamWriter.Flush()
和StreamWriter.Close()
之間的區別是什麼?StreamWriter.Flush()和StreamWriter.Close()有什麼區別?
當我的數據沒有正確寫入文件時,我在代碼的末尾添加了Flush()
和Close()
。但是,我意識到,添加或者Flush()
或Close()
都允許數據被正確寫入。
當我閱讀MSDN文檔時,我無法準確理解每種方法的作用;我只知道爲確保數據的正確寫入而需要一個或另一個。任何進一步的解釋將不勝感激。
哪裏s
是要寫入的字符串,這裏是我的代碼是什麼樣子目前:
StreamWriter sw = File.CreateText("TextOutput.txt");
sw.Write(s);
sw.Flush();
sw.Close();
基於從答案的反饋,我已經在using
重寫我的代碼塊,它實現了IDisposable
,並且會在處理對象時自動處理將文件寫入文件:
using (StreamWriter sw = File.CreateText("TextOutput.txt"))
{
sw.Write(s);
}
這是因爲Stream.Dispose調用Close() – munissor 2010-03-10 15:18:47
是清楚的,在'using'(或'try' /'catch')塊中封裝'StreamWriter'對象會強制關閉對象? – 2010-03-10 15:20:12
@Ben - 將它封裝在try/catch中將不會強制它關閉。將'.Close()'調用封裝在'finally'塊或'using'塊中,並且使用塊更加方便。 – 2010-03-10 15:22:20