簡體   English   中英

為什么不管console.SetOut(StreamWriter)寫入我的文件?

[英]Why wont console.SetOut(StreamWriter) write to my file?

創建一個控制台應用程序,我正在嘗試設置一個日志文件來跟蹤我的應用程序的活動。 這就是我設置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");

任何想法或我只是這樣做完全錯了?

您只需關閉輸出文件即可

logwriter.Close();

使用Flush或Close文件

PS:另一個測試:您可以繼續寫入控制台,直到超過內部緩沖區大小,然后您將看到一些字符寫入文件

文件I / O是緩沖的,可能需要刷新才能實際寫入文件。

您可以通過調用StreamWriter.Flush顯式刷新到文件; 或者,您可以設置AutoFlush,以便在每次調用Write后刷新流。

文件在關閉時自動刷新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM