Wiem, że dla programu istnieje stdout/in/err i chcę przekierować wyjście programu do pliku zamiast wyjścia konsoli. I teraz ustalić to z poniższym kodzie:Jak napisać do strumienia StdOut programu bezpośrednio w C#?
FileStream fs = File.Open(@"E:\console.txt", FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fs);
TextWriter old = Console.Out;
Console.SetOut(sw);
Console.Write("bbb");
sw.Flush();
Ale takie podejście jest połączyć Programu stdout do Console.Out i przekierować Console.Out do pliku. To trochę tak:
Program.StdOut -> Console.Out -> File
Console.Out tutaj wydaje się być pomostem. Nie chcę tego mostu i nie chcę używać Console.Write(), aby uzyskać wyjście. Jak mogę mapować wyjściowy strumień programu do docelowego pliku bezpośrednio i napisać bezpośrednio na stdout programu zamiast na Console.Write()? Czego chcę to trochę tak:
Program.StdOut -> File
Process.StandardOutput nieruchomość tylko daje mi tylko do odczytu StreamReader obiekt. Jak napisać do Process.StandardOutput ?? Lub gdzie jest stdout programu stdout?
Wielkie dzięki.
Dzięki, MikeP. Zastanawiam się, dlaczego klasa Console mogłaby ubiegać się o metodę OpenStandardOutput(), dlaczego nie zaklasyfikować tej metody w klasie Process, myślę, że byłoby to bardziej uzasadnione. Jaka jest filozofia projektowania? – smwikipedia
Nie wiem, dlaczego wybrali tę metodę. – MikeP