Конспект лекций (C#)-unlocked. 1 Основные сведения о C# Особенности языка
Скачать 1.97 Mb.
|
Read (char[] buffer, int index, int count) Считывает из потока count или оставшееся количество символов, и размещает их в buffer начиная с позиции index . Возвращает реально считанное количество символов ReadBlock (char[] buffer, int index, int count) Считывает из потока count или оставшееся количество символов, и размещает их в buffer начиная с позиции index . Возвращает реально считанное количество символов ReadLine() Считывает из потока следующую счтроку и возвращает ее. Если достигнут конец файла, то возвращается null ReadToEnd() Считывает из потока оставшиеся символы (начиная с текущей позиции) и возвращает их в виде строки. Если текущая позиция находится в конце файла, то возвращается пустая строка EndOfStream Возвращает true , если текущая позиция находится в конце файла, или false в противном случае CurrentEncoding Возвращает текущую кодировку в виде объекта класса Encoding Пример: чтение информации о людях (человек характеризуется ФИО, серией и номер паспорта). Для хранения информации об одном человеке создан класс. class TPeople { public string FIO, Series; public int Number; public override string ToString() { return FIO; } } using (StreamReader sr = new StreamReader(File.Open("data.txt", FileMode.Open))) 131 { while (!sr.EndOfStream) { TPeople People = new TPeople(); People.FIO = sr.ReadLine(); People.Series = sr.ReadLine(); People.Number = Convert.ToInt32(sr.ReadLine()); listBox1.Items.Add(People); } } 8.2.3 Класс StreamWriter Класс StreamWriter позволяет создавать объект, записывающий символы в поток в определённой кодировке, и применяемый для записи строк в стандартный текстовый файл. Класс расположен в пространстве имён System.IO В таблице 8.5 приведены некоторые члены данного класса. Таблица 8.5 – Некоторые члены класса StreamWriter Наименование Описание StreamWriter (Stream stream [,Encoding encoding]) Создает экземпляр класса и связывает его с потоком stream , в который будут выводится данные. Используется кодировка по умолчанию или encoding StreamWriter (string path [,Encoding encoding]) Создает экземпляр класса и связывает его с файлом path , в который будут выводится данные. Используется кодировка по умолчанию или encoding Close() Закрывает существующий поток Write(<данные>) WriteLine(<данные>) Записывает в поток <данные> , которые могут быть переменными, константами, результатами выражений и т.д. Также поддерживается набор параметров, используемых методом String.Format() WriteLine отличается от Write выводом символов конца строки и может быть использована без параметров Encoding Возвращает текущую кодировку в виде объекта класса Encoding Пример: запись информации о людях (человек характеризуется ФИО, серией и номер паспорта). Для хранения информации об одном человеке создан класс. class TPeople { public string FIO, Series; public int Number; 132 public override string ToString() { return FIO; } } TPeople[] Peoples = ???; using (StreamWriter sw = new StreamWriter(File.Open("data.txt", FileMode.Create))) { foreach (TPeople People in Peoples) { sw.WriteLine(People.FIO); sw.WriteLine(People.Series); sw.WriteLine(People.Number); } } BinaryReader'>8.2.4 Класс BinaryReader Класс BinaryReader позволяет создавать объект, считывающий из потока простые типы данных как двоичные значения в определённой кодировке. Класс расположен в пространстве имён System.IO В таблице 8.6 приведены некоторые члены данного класса. Таблица 8.6 – Некоторые члены класса BinaryReader Наименование Описание BinaryReader (Stream input [,Encoding encoding]) Создает экземпляр класса из указанного потока input Используется кодировка по умолчанию или encoding Close() Закрывает существующий поток PeekChar() Возвращает преобразованное к int значение следующего символа, или -1, если символов больше нет. Позиция в потоке не меняется Read() Считывает один символ из потока и преобразует его к типу int . Если считывание не произошло, то возвращается -1 Read (char[] buffer, int index, int count) Считывает из потока count или оставшееся количество символов, и размещает их в buffer начиная с позиции index . Возвращает реально считанное количество символов 133 Продолжение таблицы 8.6 Наименование Описание Read<тип>() Считывает знвачение типа <тип> и возвращает его, например: using (BinaryReader br = ???) { int i = br.ReadInt32(); string s = br.ReadString(); double d = br.ReadDouble(); } ReadBytes (int count) Считывает из потока count байт и помещает их в массив байт, например: using (BinaryReader br = ???) { byte[] b = br.ReadBytes(5); } ReadChars (int count) Считывает из потока count символов и помещает их в массив символов, например: using (BinaryReader br = ???) { char[] c = br.ReadChars(5); } Пример: чтение информации о людях (человек характеризуется ФИО, серией и номер паспорта). Для хранения информации об одном человеке создан класс. class TPeople { public string FIO, Series; public int Number; public override string ToString() { return FIO; } } using (BinaryReader br = new BinaryReader(File.Open("data.txt", FileMode.Open))) { while (br.PeekChar() != -1) { TPeople People = new TPeople(); People.FIO = br.ReadString(); People.Series = br.ReadString(); People.Number = br.ReadInt32(); listBox1.Items.Add(People); } } 134 Writer'>8.2.5 Класс BinaryWriter Класс BinaryWriter позволяет создавать объект, записывающий в поток простые типы данных как двоичные значения в определенной кодировке. Класс расположен в пространстве имен System.IO В таблице 8.7 приведены некоторые члены данного класса. Таблица 8.7 – Некоторые члены класса BinaryWriter Наименование Описание BinaryWriter (Stream output [,Encoding encoding]) Создает экземпляр класса и связывает его с потоком output , в который будут выводится данные. Используется кодировка по умолчанию или encoding Close() Закрывает существующий поток Write(<данные>) Записывает в поток <данные> , которые могут быть переменными, константами, результатами выражений и т.д. Write (byte[] buffer, int index, int count) Записывает в поток count байт из иассива buffer начиная с позиции index Write (char[] chars, int index, int count) Записывает в поток count символов из иассива chars начиная с позиции index Seek (long offset, SeekOrigin origin) Перемещает текущую позицию в потоке на offset байт относительно опорной точки, заданной в origin Опорная точка может быть: SeekOrigin.Begin – начало потока; SeekOrigin.End – конец потока; SeekOrigin.Current – текущее положение в по- токе. Возвращается текущая позиция в потоке Пример: запись информации о людях (человек характеризуется ФИО, серией и номер паспорта). Для хранения информации об одном человеке создан класс. class TPeople { public string FIO, Series; public int Number; public override string ToString() { return FIO; } } 135 TPeople[] Peoples = ???; using (BinaryWriter bw = new BinaryWriter(File.Open("data.txt", FileMode.Create))) { foreach (TPeople People in Peoples) { bw.Write(People.FIO); bw.Write(People.Series); bw.Write(People.Number); } } |