Вход/Регистрация
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
вернуться

Троелсен Эндрю

Шрифт:

 // Создание StringWriter и вывод символьных данных в память.

 StringWriter strWriter = new StringWriter;

 strWriter.WriteLine("He забыть о дне рождения мамы…");

 strWriter.Close;

 // Получение копии содержимого (сохраненного в строке) и

 // вывод на консоль.

 Console.WriteLine("Содержимое StringWriter:\n{0}", strWriter);

}

Ввиду того, что и StringWriter, и StreamWriter получаются из одного и того же базового класса (TextWriter), для них используется приблизительно одинаковая программная логика записи. Однако ввиду самой своей природы, класс StringWriter позволяет извлечь объект System.Text.StringBuilder с помощью метода GetStringBuilder.

static void Main(string[] args) {

 Соnsоlе.WriteLine("*** Забавы с StringWriter/StringReader ***\n'');

 …

 // Создание StringWriter и вывод символьных данных в память.

 StringWriter strWriter = new StringWriter;

 …

 // Получение внутреннего StringBuilder.

 StringBuilder sb = strWriter.GetStringBuilder;

 sb.Insert(0, "Эй!! ");

 Console.WriteLine("-› {0}", sb.ToString);

 sb.Remove(0, "Эй!! ".Length);

 Console.WriteLine("-› {0}", sb.ToString);

}

Чтобы прочитать данные из символьного потока, используйте соответствующий тип StringReader, который (в соответствии с ожиданиями) функционирует так же, как и родственный ему класс StreamReader. Фактически класс StringReader просто переопределяет наследуемые члены, чтобы обеспечить чтение из блока символьных данных, а не из файла.

static void Main(string[] args) {

 Console.WriteLine("*** Забавы с StringWriter/StringReader ***\n");

 // Создание StringWriter и вывод символьных данных в память.

 StringWriter strWriter = new StringWriter;

 …

 // Чтение данных из StringWriter.

 StringReader strReader = new StringReader(writer.ToString);

 string input = null;

 while ((input = strReader.ReadLine) != null) {

Console.WriteLine(input);

 }

 strReader.Close;

}

Исходный код. Проект StringWriterReaderApp размещен в подкаталоге, соответствующем главе 16.

Работа с BinaryWriter и BinaryReader

И последним из рассмотренных здесь средств чтения/записи будут BinaryReader и BinaryWriter, которые получаются непосредственно из System.Object. Эти типы позволяют читать и записывать дискретные типы данных в соответствующий поток в компактном двоичном формате. Класс BinaryWriter определяет чрезвычайно перегруженный метод Write, позволяющий поместить тип данных в соответствующий поток. Вдобавок к Write, класс BinaryWriter предлагает дополнительные члены, позволяющие получить или установить тип, производный от Stream, и обеспечить поддержку прямого доступа к данным (табл. 16.9).

Таблица 16.9. Основные члены BinaryWriter 

Член Описание
BaseStream Свойство, доступное только для чтения. Обеспечивает доступ к потоку, используемому с объемом BinaryWriter
Close Метод, завершающий двоичный поток
Flush Метод, выполняющий очистку двоичного потока
Seek Метод, устанавливающий указатель позиции в текущем потоке
Write Метод, записывающий значение в текущий поток

Класс BinaryReader дополняет функциональные возможности, предлагаемые членами BinaryWriter (табл. 16.10).

Таблица 16.10. Основные Члены BinaryReader

Член Описание
BaseStream Свойство, доступное только для чтения. Обеспечивает доступ к потоку, используемому с объектом BinaryReader
Close Метод, завершающий двоичный поток чтения
PeekChar Метод, возвращающий следующий доступный символ без фактического смещения указателя позиции в потоке
Read Метод, считывающий заданное множество байтов или символов и запоминающий их во входном массиве
ReadXXX Класс BinaryReader определяет множество методов ReadXXX, "захватывающих" следующий тип из потока (ReadBoolean, ReadByte, ReadInt32 и т.д.)
  • Читать дальше
  • 1
  • ...
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: