6

Console.SetOut メソッドを使用してすべての Console.Out.WriteLines をファイルに書き込んでいますが、これは機能します。唯一の問題は、Console.Out.WriteLine が発生するたびに書き込むのではなく、アプリケーションを閉じたときにすべてをテキスト ファイルに書き込むことだけです。これをどのように実現できるかについてのアイデアはありますか?

やり方: 前 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();

ありがとう。

4

4 に答える 4

13

StreamWriter には AutoFlush プロパティがあります。true に設定すると、必要な結果が得られるはずです。

于 2010-02-24T15:14:28.787 に答える
11

StreamWriterデフォルトでその内容をバッファリングします。バッファをフラッシュしたい場合は、Flushメソッドを呼び出す必要があります:

現在のライターのすべてのバッファーをクリアし、バッファー内のデータが基になるストリームに書き込まれるようにします。

于 2010-02-24T15:10:58.963 に答える
1

手動で毎回フラッシュを呼び出したくない場合は、独自の TextWriter 派生オブジェクトを実装してこれを実行することを検討してください。

于 2010-02-24T15:12:32.283 に答える
0

バッファをフラッシュするには、writer.Close(); を実行できます。

于 2012-11-02T15:39:55.607 に答える