Изменение устройств ввода/вывода в консоль

Несмотря на свою родину (M$ Вынь) в C# присутствует возможность изменения устройств стандартного ввода/вывода на консоль.

Вот, собственно, пример:
TextWriter consoleOut = Console.Out; // Дескриптор устройства вывода на консоль
TextWriter fileOut = new StreamWriter("file.txt"); // Дескриптор вывода в файл

Console.WriteLine("Это выводится на экран");
Console.WriteLine("Это тоже выводится на экран");

Console.SetOut(fileOut); // Изменяем устройство вывода на файл
Console.WriteLine("А это выводится в файл");

Console.SetOut(consoleOut); // Возвращаем устройсво вывода на консоль
Console.WriteLine("И снова выводится на экран");

fileOut.Close();

TextReader consoleIn = Console.In; // дескриптор устройства ввода в консоль
TextReader fileIn = new StreamReader("file.txt"); // дескрптор файла ввода
Console.WriteLine("Введите что-нибудь:");
string text = Console.ReadLine();
Console.WriteLine("Это было введено с клавиатуры: {0}", text);

Console.SetIn(fileIn); // Изменяем устройство ввода на файл
text = Console.ReadLine();
Console.WriteLine("А это было введено из файла: {0}", text);
Console.SetIn(consoleIn); // Возвращаем усройство ввода на консоль

Скачать пример

Поблагодарить автора

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>