C # Как перенаправить поток на консоль Out? - PullRequest
50 голосов
/ 27 июня 2010

Я нашел много примеров, как перенаправить вывод консоли в файл.Однако мне нужно противоположное решение - у меня есть StreamWriter, который я хочу показать в выводе консоли, как только я сделаю sw.WriteLine("text");

Ответы [ 2 ]

87 голосов
/ 27 июня 2010

Просто укажите поток на стандартный вывод:

sw = new StreamWriter(Console.OpenStandardOutput());
sw.AutoFlush = true;
Console.SetOut(sw);
1 голос
/ 30 ноября 2018

Не то, чтобы предыдущий ответ был неправильным, но у меня недостаточно уровня репутации, чтобы добавить комментарий, просто добавив еще один ответ:

Если бы вы когда-либо использовали указание потока на стандартный вывод, как Джон предложил с помощью оператора usingвы не должны забывать повторно открывать консоль 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);
...