Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Работа с типами StringWriter и StringReader
Работа с типами StringWriter и StringReader
Используя типы StringWriter и StringReader, вы можете обращаться с текстовой информацией, как с потоком символов в памяти. Это может оказаться полезным тогда, когда необходимо добавить символьную информацию в соответствующий буфер. В следующем примере блок строковых данных записывается в объект StringWriter, а не в файл на локальном жестком диске.
static void Main(string[] args) {
Console.WriteLine("*** Забавы с StringWriter/StringReader ***n");
// Создание 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.
- Анализ пространства имен System.IO
- Типы Directory(Info) и File(Info)
- Работа с типом DirectoryInfo
- Работа с типом Directory
- Работа с типом класса DriveInfo
- Работа с классом FileInfo
- Работа с типом File
- Абстрактный класс Stream
- Работа с StreamWriter и StreamReader
- Работа с типами StringWriter и StringReader
- Работа с BinaryWriter и BinaryReader
- Программный мониторинг файлов
- Асинхронный файловый ввод-вывод
- Резюме
- Работа с типом Directory
- Работа с StreamWriter и StreamReader
- Работа с типом File
- Анализ пространства имен System.IO
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Лекция 15. Работа с базами данных
- Работа с ресурсами локальной сети
- Эффективная работа с временными файлами сортировки
- Ускоренная работа с индексами
- HR-брендинг: Работа с поколением Y, новые инструменты для коммуникации, развитие корпоративной культуры и еще 9 эффектив...
- Безопасная работа с внешними таблицами
- Работа со строками