Работа с типами StringWriter и StringReader

Работа с типами StringWriter и StringReader

Используя типы StringWriter и StringReader, вы можете обращаться с текстовой информацией, как с потоком символов в памяти. Это может оказаться полезным тогда, когда необходимо добавить символьную информацию в соответствующий буфер. В следующем примере блок строковых данных записывается в объект StringWriter, а не в файл на локальном жестком диске.

static void Main(string[] args) {

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

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

 StringWriter strWriter = new StringWriter();

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

 strWriter.Close();

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

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

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

}

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

static void Main(string[] args) {

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

 …

 // Создание 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 *** ");

 // Создание 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.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

3.2. Работа с различными типами данных

Из книги Офисное программирование автора Фризен Ирина Григорьевна

3.2. Работа с различными типами данных Тип, определяемый пользователемVBA позволяет пользователю определять свои собственные типы данных. Определенный пользователем тип нужен, когда одной переменной необходимо обозначить несколько связанных по смыслу элементов данных,


Эксперименты с числовыми типами данных

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Эксперименты с числовыми типами данных Числовые типы .NET поддерживают свойства MaxValue и МinValue, сообщающие информацию о диапазоне данных, которые может хранить данный тип. Предположим, что мы создали несколько переменных типа System.UInt16 (unsigned short – короткое целое без знака), как


Соответствие между типами библиотеки базовых классов .NET, C# и CIL

Из книги Стандарты программирования на С++. 101 правило и рекомендация автора Александреску Андрей

Соответствие между типами библиотеки базовых классов .NET, C# и CIL В табл. 15.4 показано соответствие между типами базовых классов .NET и ключевыми словами C#, а также между ключевыми словами C# и командами CIL. Там же представлены сокращенные обозначения констант, используемые для


Работа с типами Windows Forms

Из книги VBA для чайников автора Каммингс Стив

Работа с типами Windows Forms При построении приложения Windows Forms вы можете, при желании, создать весь соответствующий программный код вручную (например, в редакторе Блокнот или в редакторе TextPad), а затем отправить файлы *.cs компилятору командной строки C# с флагом /target:winexe.


Работа с типами Brush

Из книги Самоучитель работы на Macintosh автора Скрылина Софья

Работа с типами Brush Типы, производные от System.Drawing.Brush, используются для заполнения имеющегося региона заданным цветом, узором или изображением. Сам класс Brush является абстрактным типом, поэтому он не позволяет создать соответствующий экземпляр непосредственно. Однако Brush


91. Работайте с типами, а не с представлениями

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

91. Работайте с типами, а не с представлениями РезюмеНе пытайтесь делать какие-то предположения о том, как именно объекты представлены в памяти. Как именно следует записывать и считывать объекты из памяти — пусть решают типы объектов.ОбсуждениеСтандарт С++ дает очень мало


Знакомство с пользовательскими типами данных

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

Знакомство с пользовательскими типами данных Пользовательский тип данных VBA представляет собой, так сказать, поселившуюся под одной крышей компанию выбранных вами типов данных. Определив пользовательский тип данных, вы получаете возможность объявлять переменные этого


3.6. Преобразования между числовыми типами

Из книги автора

3.6. Преобразования между числовыми типами ПроблемаИмеется число одного типа и требуется преобразовать его в другой, как int в short или наоборот, но при этом необходимо перехватывать все ошибки переполнения (overflow) или потери значимости (underflow), возникающие при работе


6.2.5. Работаем с различными типами данных в ячейках

Из книги автора

6.2.5. Работаем с различными типами данных в ячейках Для выполнения задания нам понадобятся материалы разд. 5.2.4 и 5.2.6.ЗаданиеБассейн объемом 360 м3 был заполнен водой до нормы 1 апреля 2008 года. Выпускной клапан был не плотно закрыт, поэтому бассейн терял в день 30 м3


Операции с числовыми типами

Из книги автора

Операции с числовыми типами * Операции сравнения. Используйте стандартные операторы отношений (=, <, >, >=, <=, <> или !=)[17].Возможны сравнения строк с использованием таких операторов SQL, как CONTAINING, STARTING WITH и LIKE. В данных операциях числа трактуются как строки. Более


Использование CAST() с типами дата/время

Из книги автора

Использование CAST() с типами дата/время В некоторых местах этой главы вы встречали функцию CAST() в выражениях, содержащих типы данных даты и литералы даты. В настоящем разделе рассматриваются различные аспекты преобразования даты и времени более широко и


Преобразование между типами дата/время

Из книги автора

Преобразование между типами дата/время Обычно преобразование из одного типа дата/время в другой возможно, если исходный тип дата/время содержит подходящий вид данных для помещения в выходной тип дата/время. Например, TIMESTAMP содержит данные, которые можно преобразовать в


Преобразования между типами дата/время и другими типами данных

Из книги автора

Преобразования между типами дата/время и другими типами данных Любой символьный тип или выражение, чье содержание может быть выражено в правильном литерале даты, может быть преобразовано в соответствующий тип дата/время.Типы данных времени и даты не могут быть


Подпрограммы для работы с перечислимыми типами

Из книги автора

Подпрограммы для работы с перечислимыми типами procedure Inc(var i: integer); Увеличивает значение переменной i на 1 procedure Inc(var i: integer; n: integer); Увеличивает значение переменной i на n procedure Dec(var i: integer); Уменьшает значение переменной i на 1 procedure Dec(var i: integer; n: integer);