创建一个控制台应用程序,我试图设置一个日志文件来跟踪我的应用程序的活动。 这就是我设置FileStream和Writer的方式。
FileStream logstrm;
StreamWriter logwriter;
logstrm = new FileStream("file.txt", FileMode.OpenOrCreate, FileAccess.Write);
logwriter = new StreamWriter(logstrm);
在调用SetOut之前,以下内容正确地将文本输出到控制台。
Console.WriteLine("LOG FILES CREATED");
但是,一旦我执行了以下操作,我希望将文本写入file.txt,但是当我打开它时文件中没有任何内容。
Console.SetOut(logwriter);
Console.WriteLine("TEXT EXPECTED TO BE IN FILE.TXT");
任何想法或我只是这样做完全错了吗?
答案 0 :(得分:0)
只是您不要关闭输出文件
logwriter.Close();
使用Flush或关闭文件
PS:另一个测试:您可以继续写入控制台,直到超出内部缓冲区大小,然后您将看到一些字符写入文件
答案 1 :(得分:0)
文件I / O被缓冲,可能需要刷新才能实际写入文件。
您可以通过调用StreamWriter.Flush显式刷新到文件;或者,您可以设置AutoFlush,以便在每次调用Write之后刷新流。
文件会在Close上自动刷新。