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

Класс StreamWriter

StreamWriter наследует TextWriter и пишет в Stream. Конструктор по умолчанию даёт UTF-8 с BOM; для текста "abcde" без BOM берут UTF8Encoding(false) и leaveOpen: true. Читают через StreamReader. Есть *Async.

Синтаксис

using System.Text; var writer = new StreamWriter(stream); var writer = new StreamWriter( stream, new UTF8Encoding(false), bufferSize: 1024, leaveOpen: true);

Пример

Давайте запишем "abcde" в MemoryStream:

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

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

"abcde"

Пример

Давайте запишем строку через WriteLine:

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

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

"abcde\n"

Пример

Давайте проверим длину буфера до Flush:

using System; using System.IO; using System.Text; class Program { static void Main() { var ms = new MemoryStream(); using (var writer = new StreamWriter( ms, new UTF8Encoding(false), 1024, leaveOpen: true)) { writer.Write("abcde"); long before = ms.Length; writer.Flush(); long after = ms.Length; Console.WriteLine(before); Console.WriteLine(after); } } }

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

0 5

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

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