Страница 212 из 502
Метод - Описание
int Read() - Возвращает целочисленное представление следующего доступного символа из вызывающего потока ввода. При обнаружении конца файла возвращает значение -1
int Read(byte [] buffer,int offset, int count) - Делает попытку прочитать количество count байтов в массив buffer, начиная с элемента buffer[offset], и возвращает количество успешно считанных байтов
int Read(char[]buffer, int offset, int count) - Делает попытку прочитать количество count символов в массив buffer, начиная с элемента buffer[offset], и возвращает количество успешно считанных символов
Демонстрирование двоичного ввода-вывода
Ниже приведен пример программы, в котором демонстрируется применение классов BinaryReader и BinaryWriter для двоичного ввода-вывода. В этой программе в файл записываются и считываются обратно данные самых разных типов.
<b>// Записать двоичные данные, а затем считать их обратно.</b>
<b>using System; </b>
<b>using System.IO;</b>
<b>class RWData {</b>
<b> static void Main() {</b>
<b> BinaryWriter dataOut;</b>
<b> BinaryReader dataIn;</b>
<b> int i = 10;</b>
<b> double d = 1023.56;</b>
<b> bool b = true;</b>
<b> string str = "Это тест";</b>
<b> // Открыть файл для вывода, </b>
<b> try {</b>
<b> dataOut = new</b>
<b> BinaryWriter(new FileStream("testdata", FileMode.Create));</b>
<b> }</b>
<b> catch(IOException exc) {</b>
<b> Console.WriteLine("Ошибка открытия файла:" + exc.Message); return;</b>
<b> }</b>
<b> // Записать данные в файл, </b>
<b> try {</b>
<b> Console.WriteLine("Запись " + i);</b>
<b> dataOut.Write(i);</b>
<b> Console.WriteLine("Запись " + d);</b>
<b> dataOut.Write(d);</b>
<b> Console.WriteLine("Запись " + b);</b>
<b> dataOut.Write(b);</b>
<b> Console.WriteLine("Запись " + 12.2 * 7.4);</b>
<b> dataOut.Write(12.2 * 7.4);</b>
<b> Console.WriteLine("Запись " + str);</b>
<b> dataOut.Write(str);</b>
<b> }</b>
<b> catch(IOException exc) {</b>
<b> Console.WriteLine("Ошибка ввода-вывода:n" + exc.Message);</b>
<b> } finally {</b>
<b> dataOut.Close();</b>
<b> }</b>
<b> Console.WriteLine();</b>
<b> //А теперь прочитать данные из файла,</b>
<b> try {</b>
<b> dataIn = new</b>
<b> BinaryReader(new FileStream("testdata", FileMode.Open));</b>
<b> }</b>
<b> catch(IOException exc) {</b>
<b> Console.WriteLine("Ошибка открытия файла:" + exc.Message);</b>
<b> return;</b>
<b> }</b>
<b> try {</b>
<b> i = dataIn.ReadInt32();</b>
<b> Console.WriteLine("Чтение " + i);</b>
<b> d = dataIn.ReadDouble();</b>
<b> Console.WriteLine("Чтение " + d); </b>
<b> b = dataIn.ReadBoolean();</b>
<b> Console.WriteLine("Чтение " + b);</b>
<b> d = dataIn.ReadDouble();</b>
<b> Console.WriteLine("Чтение " + d);</b>
<b> str = dataIn.ReadString();</b>
<b> Console.WriteLine("Чтение " + str);</b>
<b> }</b>
<b> catch(IOException exc) {</b>
<b> Console.WriteLine("Ошибка ввода-вывода:n" + exc.Message);</b>
<b> } finally {</b>
<b> dataIn.Close();</b>
<b> }</b>
<b> }</b>
<b>}</b>
Вот к какому результату приводит выполнение этой программы.
<b>Запись 10 </b>
<b>Запись 1023.56 </b>