Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект ООП прогр.doc
Скачиваний:
11
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Лекция 21. Классы потоков вводв и вывода

План:

  1. Основные понятия

  2. Стандартный поток ввода

  3. Стандартный поток вывода

  4. Стандартный поток вывода сообщений об ошибках

  5. Программа StdStreams

1. Основные понятия

Приложению C# доступны 3 стандартных потока, которые всегда открыты: стандартный поток ввода, стандартный поток вывода и стандартный поток вывода сообщений об ошибках.

Все перечисленные выше потоки определены в классе Console. Вы можете получить на них ссылки с помощью статических свойств In, Out и Error.

2. Стандартный поток ввода

Стандартный поток ввода, который можно получить при помощи статического свойства In, определен как статический объект класса TextiReader. Этот класс содержит методы, предназначенные для ввода отдельных символов, строк и блоков текста.

Вот как программа может получить ссылку на стандартный поток ввода:

TextReader trIn = Console.In;

Чтобы ввести данные из стандартного потока ввода (по умолчанию связанного с клавиатурой компьютера), используйте один из методов, определенных для этого в классе TextReader.

В предыдущих примерах программ мы использовали метод Console. ReadLine, осуществляющий ввод символов из стандартного потока ввода. Аналогичный метод предусмотрен и в классе TextReader:

string s = trIn.ReadLine();

Этот оператор вводит текстовую строку с клавиатуры и сохраняет ее в переменной s.

В классе TextReader имеются и другие методы, предназначенные для ввода отдельных символов и блока символов.

Метод Read, не имеющий параметров, читает один символ и возвращает его как значение типа int. Если символов больше нет, метод возвращает значение -1. При возникновении ошибок создается исключение IOException, обработку которого необходимо предусмотреть.

3. Стандартный поток вывода

Стандартный поток вывода out создан на базе класса TextWriter, предназначенного для форматированного вывода данных различного типа с целью их визуального отображения в виде текстовой строки.

Дня того чтобы получить ссылку на стандартный поток вывода, используйте свойство Console.Out:

TextWriter twOut = Console.Out;

Далее, используя полученную ссылку, можно выводить данные с помощью одного из методов, определенных в классе TextWriter, например с помощью хорошо известного вам по предыдущим примерам программ метода WriteLine:

twOut.WriteLine("Запись в стандартный поток вывода");

Этот метод аналогичен методу Console. Wri teLine.

В классе TextWriter определено несколько реализаций метода Write с параметрами различных типов. Вот некоторые из них:

public virtual void Write(bool);

public virtual void Write(char);

public virtual void Write(char[]);

public virtual void Write(decimal);

public virtual void Write(double);

public virtual void Write(int);

public virtual void Write(long);

public virtual void Write(object);

public virtual void Write(float);

public virtual void Write(string);

public virtual void Write(uint);

public virtual void Write(ulong);

Как видите, вы можете записать в стандартный поток вывода текстовое представление данных различного типа, в том числе и класса object.

Метод WriteLine аналогичен методу Write, отличаясь лишь тем, что он добавляет к записываемой в поток строке символ перехода на следующую строку:

public virtual void WriteLine(bool);

public virtual void WriteLine(char);

public virtual void WriteLine(char[]);

public virtual void WriteLine(decimal);

public virtual void WriteLine(double);

public virtual void WriteLine(int);

public virtual void WriteLine(long);

public virtual void WriteLine(object);

public virtual void WriteLine(float);

public virtual void WriteLine(string);

public virtual void WriteLine(uint);

public virtual void WriteLine(ulong);

Реализация метода WriteLine без параметров записывает только символ перехода на следующую строку.