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();

相关问题