Класс 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,
поток в памяти для примеров