Текстовая запись StreamWriter в C#
Класс StreamWriter буферизует символы и записывает текст в байты согласно Encoding.
Метод Flush сбрасывает внутренний буфер в базовый поток. В примере буфер уходит в поток сам, когда писатель закрывается в конце блока.
Запишем строку "row". Пока блок using не закончился, байты сидят в буфере писателя. При закрытии в поток попадают три служебных байта метки UTF-8 и три байта букв; аргумент leaveOpen: true оставляет поток открытым:
using System.IO;
using System.Text;
using MemoryStream bytes = new();
using (StreamWriter writer = new(bytes, Encoding.UTF8, leaveOpen: true))
{
writer.Write("row");
}
Console.WriteLine(bytes.Length); // выведет 6
Запишите текст "ref:42" в поток в памяти и выведите, сколько байт заняла запись.