Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Test > log
то символьная строка "Это тест." будет выведена в файл log. Аналогичным образом переадресуется ввод. Но для переадресации ввода указываемый источник входных данных должен удовлетворять требованиям программы, иначе она "зависнет". Операторы <и >, выполняющие переадресацию из командной строки, не являются составной частью С#, а предоставляются операционной системой. Поэтому если в рабочей среде поддерживается переадресация ввода-вывода, как, например, в Windows, то стандартные потоки ввода и вывода можно переадресовать, не внося никаких изменений в программу. Тем не менее существует другой способ, позволяющий осуществлять переадресацию стандартных потоков под управлением самой программы. Для этого служат приведенные ниже методы SetIn(), SetOut() и SetError(), являющиеся членами класса Console. static void SetIn(TextReader новый_поток_ввода) static void SetOut(TextWriter новый_поток_вывода) static void SetError(TextWriter новый_поток_сообщений_об_ошибках) Таким образом, для переадресации ввода вызывается метод SetIn() с указанием требуемого потока. С этой целью может быть использован любой поток ввода, при условии, что он является производным от класса TextReader. А для переадресации вывода вызывается метод SetOut() с указанием требуемого потока вывода, который должен быть также производным от класса TextReader. Так, для переадресации вывода в файл достаточно указать объект класса FileStream, заключенный в оболочку класса StreamWriter. Соответствующий пример программы приведен ниже. // Переадресовать поток Console.Out. using System; using System.IO; class Redirect { static void Main() { StreamWriter log_out = null; try { log_out = new StreamWriter("logfile.txt"); // Переадресовать стандартный вывод в файл logfile.txt. Console.SetOut(log_out); Console.WriteLine("Это начало файла журнала регистрации."); for (int i = 0; i < 10; i++) Console.WriteLine(i); Console.WriteLine("Это конец файла журнала регистрации."); } catch (IOException exc) { Console.WriteLine("Ошибка ввода-вывода\n" + exc.Message); } finally { if (log_out!= null) log_out.Close(); } } } При выполнении этой программы на экран ничего не выводится, но файл logfile.txt будет содержать следующее. Это начало файла журнала регистрации. 0 1 2 3 4 5 6 7 8 9 Это конец файла журнала регистрации. Date: 2015-09-02; view: 453; Нарушение авторских прав |