При выполнении этой программы на экран ничего не выводится, но файл logfile. txt будет содержать следующее.
Это начало файла журнала регистрации.
0
1
2
3
4
5
6
7
8
9
Это конец файла журнала регистрации.
Попробуйте сами поупражняться в переадресации других встроенных потоков.
В приведенных ранее примерах демонстрировались возможности чтения и записи байтов или символов. Но ведь имеется также возможность (и ею пользуются часто) читать и записывать другие типы данных. Например, можно создать файл, содержащий данные типа int, double или short. Для чтения и записи двоичных значений встроенных в C# типов данных служат классы потоков BinaryReader и BinaryWriter. Используя эти потоки, следует иметь в виду, что данные считываются и записываются во внутреннем двоичном формате, а не в удобочитаемой текстовой форме.
Класс BinaryWriter служит оболочкой, в которую заключается байтовый поток, управляющий выводом двоичных данных. Ниже приведен наиболее часто употребляемый конструктор этого класса:
BinaryWriter(Stream output)
где FileStream. Если же параметр ArgumentNullException. А если поток, определяемый параметром ArgumentException. По завершении вывода в поток типа BinaryWriter его нужно закрыть. При этом закрывается и базовый поток.
В классе BinaryWriter определены методы, предназначенные для записи данных всех встроенных в C# типов. Некоторые из этих методов перечислены в табл. 14.5. Обратите внимание на то, что строковые данные типа string записываются во внутреннем формате с указанием длины строки. Кроме того, в классе BinaryWriter определены стандартные методы Close() и Flush(), действующие аналогично описанному выше.
Таблица 14.5. Наиболее часто используемые методы, определенные в классе BinaryWriter
Метод - Описание
void Write(sbyte value) - Записывает значение типа sbyte со знаком
void Write(byte value) - Записывает значение типа byte без знака
void Write(byte[] buffer) - Записывает массив значений типа byte
void Write(short value) - Записывает целочисленное значение типа short (короткое целое)
void Write(ushort value) - Записывает целочисленное значение типа ushort (короткое целое без знака)
void Write (int value) - Записывает целочисленное значение типа int
void Write(uint value) - Записывает целочисленное значение типа uint (целое без знака)
void Write(long value) - Записывает целочисленное значение типа long (длинное целое)
void Write(ulong value) - Записывает целочисленное значение типа ulong (длинное целое без знака)
void Write(float value) - Записывает значение типа float (с плавающей точкой одинарной точности)
void Write(double value) - Записывает значение типа double (с плавающей точкой двойной точности)
void Write(decimal value) - Записывает значение типа decimal (с двумя десятичными разрядами после запятой)
void Write(char ch) - Записывает символ
void Write (char[] buffer) - Записывает массив символов
void Write(string value) Записывает строковое значение типа string, представленное во внутреннем формате с указанием длины строки
Класс BinaryReader служит оболочкой, в которую заключается байтовый поток, управляющий вводом двоичных данных. Ниже приведен наиболее часто употребляемый конструктор этого класса:
BinaryReader(Stream input)
где FileStream. Если же поток, определяемый параметром ArgumentException. По завершении ввода из потока типа BinaryReader его нужно закрыть. При этом закрывается и базовый поток.