Двоичная запись BinaryWriter в C#
Класс BinaryWriter пишет числа в порядке little-endian: младший байт идёт первым. После записи позиция потока сдвигается вперёд.
Каждое поле занимает известное число байт, и по длине потока видно, сколько значений уже записано.
Запишем два целых числа. Каждое значение int занимает 4 байта, поэтому после двух записей длина потока равна 8:
using System.IO;
using MemoryStream stream = new();
using (BinaryWriter writer = new(stream, System.Text.Encoding.UTF8, leaveOpen: true))
{
writer.Write(1);
writer.Write(2);
}
Console.WriteLine(stream.Length); // выведет 8
Запишите double 2.25 в MemoryStream и выведите Length после записи.