C# 4.0 полное руководство - 2011
Шрифт:
string ReadStringO
Считывает значение типа string, представленное во внутреннем двоичном формате с указанием длины строки. Этот метод следует использовать для считывания строки, которая была записана средствами класса BinaryWriter
В классе BinaryWriter определены также три приведенных ниже варианта метода Read .
При неудачном исходе операции
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 {
dataOut = new
'BinaryWriter(new FileStream("testdata", FileMode.Create));
}
catch(IOException exc) {
Console.WriteLine("Ошибка открытия файла:\п" + exc.Message); return;
}
// Записать данные в файл, try {
Console.WriteLine("Запись " + i) ; dataOut.Write(i);
Console.WriteLine("Запись " + d) ; dataOut.Write(d);
Console.WriteLine("Запись " + b); dataOut.Write(b);
Console.WriteLine("Запись " + 12.2 * 7.4); dataOut.Write(12.2 * 7.4);
Console.WriteLine("Запись " + str); dataOut.Write(str);
}
catch(IOException exc) {
Console.WriteLine("Ошибка ввода-вывода:\n" + exc.Message);
} finally {
dataOut.Close;
}
Console.WriteLine;
//А теперь прочитать данные из файла, try {
dataln = new
BinaryReader(new FileStream("testdata", FileMode.Open));
}
catch(IOException exc) {
Console.WriteLine("Ошибка открытия файла:\п" + exc.Message) return;
}
try {
i = dataln.Readlnt32;
Console.WriteLine("Чтение " + i); d = dataln.ReadDouble;
Console.WriteLine("Чтение " + d); b = dataln.ReadBoolean;
Console.WriteLine("Чтение " + b); d = dataln.ReadDouble;
Console.WriteLine("Чтение " + d); str = dataln.ReadString;
Console.WriteLine("Чтение " + str);
}
catch(IOException exc) {
Console.WriteLine("Ошибка ввода-вывода:\n" + exc.Message);
} finally {
dataln.Close ;
}
}
}
Вот к какому результату приводит выполнение этой программы.
Запись 10 Запись 1023.56 Запись True Запись 90.28 Запись Это тест
Чтение 10 Чтение 1023.56 Чтение True Чтение 90.28 Чтение Это тест
Если просмотреть содержимое файла testdata, который получается при выполнении этой программы, то можно обнаружить, что он содержит данные в двоичной, а не в удобочитаемой текстовой форме.