Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
796 of 1492 menu
◀ ▶

Класс StreamReader

StreamReader оборачивает Stream и наследует TextReader. Строку снимают через ReadLine, символ - через Read. Часто берут поток из MemoryStream. Есть перегрузки и *Async.

Синтаксис

using System.Text; var reader = new StreamReader(stream); var reader = new StreamReader( stream, Encoding.UTF8);

Пример

Давайте прочитаем строку из MemoryStream без BOM:

using System; using System.IO; using System.Text; class Program { static void Main() { var ms = new MemoryStream(); using (var w = new StreamWriter( ms, new UTF8Encoding(false), 1024, leaveOpen: true)) { w.Write("abcde"); } ms.Position = 0; using var reader = new StreamReader(ms, Encoding.UTF8); string res = reader.ReadLine() ?? ""; Console.WriteLine(res); } }

Результат выполнения кода:

"abcde"

Пример

Давайте прочитаем первый символ через Read:

using System; using System.IO; using System.Text; class Program { static void Main() { var ms = new MemoryStream(); using (var w = new StreamWriter( ms, new UTF8Encoding(false), 1024, leaveOpen: true)) { w.Write("abcde"); } ms.Position = 0; using var reader = new StreamReader(ms, Encoding.UTF8); int res = reader.Read(); Console.WriteLine(res); } }

Результат выполнения кода:

97

Пример

Давайте прочитаем весь текст через ReadToEnd:

using System; using System.IO; using System.Text; class Program { static void Main() { var ms = new MemoryStream(); using (var w = new StreamWriter( ms, new UTF8Encoding(false), 1024, leaveOpen: true)) { w.Write("12345"); } ms.Position = 0; using var reader = new StreamReader(ms, Encoding.UTF8); string res = reader.ReadToEnd(); Console.WriteLine(res); } }

Результат выполнения кода:

"12345"

Смотрите также

  • StreamWriter,
    который пишет текст в поток
  • метод ReadLine,
    который читает одну строку
  • Stream,
    базовый байтовый поток
  • MemoryStream,
    поток в памяти для примеров
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить