В приведенных ранее примерах демонстрировались возможности чтения и записи байтов или символов. Но ведь имеется также возможность (и ею пользуются часто) читать и записывать другие типы данных. Например, можно создать файл, содержащий данные типаint, doubleилиshort.Для чтения и записи двоичных значений встроенных в C# типов данных служат классы потоковBinaryReader nBinaryWriter.Используя эти потоки, следует иметь в виду, что данные считываются и записываются во внутреннем двоичном формате, а не в удобочитаемой текстовой форме.
Класс BinaryWri ter
КлассBinaryWriterслужит оболочкой, в которую заключается байтовый поток, управляющий выводом двоичных данных. Ниже приведен наиболее часто употребляемый конструктор этого класса:
BinaryWriter(Stream
где
В классеBinaryWriterопределены методы, предназначенные для записи данных всех встроенных в C# типов. Некоторые из этих методов перечислены в табл. 14.5. Обратите внимание на то, что строковые данные типаstringзаписываются во внутреннем формате с указанием длины строки. Кроме того, в классеBinaryWriterопределены стандартные методыCloseиFlush, действующие аналогично описанному выше.
Таблица 14.5. Наиболее часто используемые методы, определенные в классе BinaryWriter
Метод
Описание
void
Write
(sbyte
Записывает значение типа sbyte со знаком
void
Write
(byte
Записывает значение типа byte без знака
void
Write
(byte[]
Записывает массив значений типа byte
void
Write
(short
Записывает целочисленное значение типа short (короткое целое)
void
Write
(ushort
Записывает целочисленное значение типа ushort (короткое целое без знака)
void
Write
(int
Записывает целочисленное значение типа int
void
Write
(uint
Записывает целочисленное значение типа uint (целое без знака)
void
Write
(long
Записывает целочисленное значение типа long (длинное целое)
void
Write
(ulong
Записывает целочисленное значение типа ulong (длинное целое без знака)
void
Write
(float
Записывает значение типа float (с плавающей точкой одинарной точности)
void
Write
(double
Записывает значение типа double (с плавающей точкой двойной точности)
void
Write
(decimal
Записывает значение типа decimal (с двумя десятичными разрядами после запятой)
void
Write
(char
Записывает символ
void
Write
(char[]
Записывает массив символов
void
Write
(string
Записывает строковое значение типа string, представленное во внутреннем формате с указа-