C#如何将流重定向到控制台Out?

Bop*_*Bop 51 .net c# console-application

我发现了很多示例如何将控制台输出重定向到文件中.但是我需要一个相反的解决方案 - 我有StreamWriter,我希望在控制台输出中显示它sw.WriteLine("text");

Joh*_*lla 88

只需将流指向标准输出:

sw = new StreamWriter(Console.OpenStandardOutput());
sw.AutoFlush = true;
Console.SetOut(sw);
Run Code Online (Sandbox Code Playgroud)


小智 9

不是之前的答案不正确,但由于我没有足够的声誉级别来添加评论,只需添加另一个答案:

如果您曾经使用约翰提出的 using 语句将 Stream 指向标准输出,则不应忘记稍后重新打开控制台 Stream,如https://docs.microsoft.com/en-us/dotnet/api/ 中所述system.console.setout?view=netframework-4.7.2

using (sw = new StreamWriter(Console.OpenStandardOutput())
{
    sw.AutoFlush = true;
    Console.SetOut(sw);
    ...
}
StreamWriter standardOutput = new StreamWriter(Console.OpenStandardOutput());
standardOutput.AutoFlush = true;
Console.SetOut(standardOutput);
Run Code Online (Sandbox Code Playgroud)