Чтение онлайн

ЖАНРЫ

C# 4.0 полное руководство - 2011

Шилдт Герберт

Шрифт:

Записывает строковое значение типа string, представленное во внутреннем формате с указа-

Класс BinaryReader служит оболочкой, в которую заключается байтовый поток, управляющий вводом двоичных данных. Ниже приведен наиболее часто употребляемый конструктор этого класса:

BinaryReader(Stream input)

где input обозначает поток, из которого вводятся считываемые данные. Для чтения из входного файла в качестве параметра input может быть указан объект, создаваемый

средствами класса
FileStream. Если же поток, определяемый параметром input, не был открыт для чтения данных или оказался недоступным по иным причинам, то генерируется исключение ArgumentException. По завершении ввода из потока типа BinaryReader его нужно закрыть. При этом закрывается и базовый поток.

В классе BinaryReader определены методы, предназначенные для чтения данных всех встроенных в C# типов. Некоторые из этих методов перечислены в табл. 14.6. Следует, однако, иметь в виду, что в методе Readstring считывается символьная строка, хранящаяся во внутреннем формате с указанием ее длины. Все методы данного класса генерируют исключение IOException, если возникает ошибка ввода. Кроме того, могут быть сгенерированы и другие исключения.

Таблица 14.6. Наиболее часто используемые методы, определенные в классе BinaryReader

Метод

Описание

bool ReadBoolean

Считывает значение логического типа bool

byte ReadByteO

Считывает значение типа byte

sbyte ReadSByteO

Считывает значение типа sbyte

byte[] ReadBytes(int count)

Считывает количество count байтов и возвращает их в виде массива

char ReadCharO

Считывает значение типа char

char[] ReadChars(int count)

Считывает количество count символов и возвращает их в виде массива

decimal ReadDecimal

Считывает значение типа decimal

double ReadDoubleO

Считывает значение типа double

float ReadSingleO

Считывает значение типа float

short Readlntl6

Считывает значение типа short

int Readlnt32

Считывает значение типа int

long Readlnt64

Считывает значение типа long

ushort ReadUIntl6

Считывает значение типа ushort

uint ReadUInt32

Считывает

значение типа uint

ulong ReadUInt64

Считывает значение типа ulong

string ReadStringO

Считывает значение типа string, представленное во внутреннем двоичном формате с указанием длины строки. Этот метод следует использовать для считывания строки, которая была записана средствами класса BinaryWriter

В классе BinaryWriter определены также три приведенных ниже варианта метода Read .

При неудачном исходе операции чтения эти методы генерируют исключение IOException. Кроме того, в классе BinaryReader определен стандартный метод

Close .

Метод

Описание

int

Read

Возвращает целочисленное представление следующего доступного символа из вызывающего потока ввода. При об

наружении конца файла возвращает значение -1

int

Read(byte [] buffer,

Делает попытку прочитать количество count байтов в

int

offset, int count)

массив buffer, начиная с элемента buffer[offset], и возвращает количество успешно считанных байтов

int

Read(char[]buffer,

Делает попытку прочитать количество count символов

int

offset, int count)

в массив buffer, начиная с элемента buffer[offset], и возвоашает количество успешно считанных символов

Демонстрирование двоичного ввода-вывода

Ниже приведен пример программы, в котором демонстрируется применение классов BinaryReader и BinaryWriter для двоичного ввода-вывода. В этой программе в файл записываются и считываются обратно данные самых разных типов.

// Записать двоичные данные, а затем считать их обратно.

using System; using System.10;

class RWData {

static void Main {

BinaryWriter dataOut;

BinaryReader dataln;

int i = 10;

double d = 1023.56;

bool b = true;

string str = "Это тест";

// Открыть файл для вывода, try {

Поделиться с друзьями: