6

我使用Console.SetOut方法將所有我的Console.Out.WriteLines寫入文件,並且這可以工作。唯一的問題是,當我關閉我的應用程序而不是寫入Console.Out.WriteLine時,它只會將所有內容寫入文本文件。 關於如何實現這一點的任何想法?Console.SetOut到StreamWriter,不斷寫入文本文件

我該怎麼做: 在Application.Run()之前;

FileStream writerOutput = new FileStream("Logging_Admin.txt", FileMode.Append, FileAccess.Write); 
StreamWriter writer = new StreamWriter(writerOutput); 
Console.SetOut(writer); 

Application.Run()後:

writer.Dispose(); 

感謝。

回答

11

默認情況下,StreamWriter將緩衝其內容。如果要刷新緩衝區必須調用Flush方法:

清除所有緩衝區當前作家並使所有緩衝的數據寫入底層流。

+0

我第二個這個...... – 2010-02-24 15:11:45

+0

是的,這是要走的路。非常感謝! – Fverswijver 2010-02-24 15:14:30

1

如果你不想每次都手動調用flush,你可能要考慮實現自己的TextWriter派生對象來爲你做這件事。

11

StreamWriter具有AutoFlush屬性。當設置爲true時,您應該得到您需要的結果。

0

要刷新緩衝區,你可以做 writer.Close();

相關問題