web-dev-qa-db-fra.com

C # Comment rediriger le flux vers la console Out?

J'ai trouvé de nombreux exemples pour rediriger la sortie de la console dans un fichier. Cependant, j'ai besoin d'une solution opposée - j'ai StreamWriter que je veux voir apparaître dans la sortie de la console une fois que je l'ai sw.WriteLine("text");

48
Boppity Bop

Il suffit de pointer le flux sur la sortie standard:

sw = new StreamWriter(Console.OpenStandardOutput());
sw.AutoFlush = true;
Console.SetOut(sw);
85
John Feminella

La réponse précédente n'est pas correcte, mais comme je n'ai pas assez de niveau de réputation pour ajouter un commentaire, ajoutez simplement une autre réponse:

Si vous utilisiez jamais Stream pointant vers la sortie standard, comme John l'avait proposé avec using, vous ne devriez pas oublier de rouvrir Stream ultérieurement, comme expliqué dans 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);
0
Igal Ore