Чтение и запись массива байтов в C#
Метод Read возвращает фактическое число прочитанных байт. Write принимает буфер, смещение и число байт.
Для коротких буферов в памяти часто достаточно одного вызова, но контракт Read допускает неполное чтение.
Запишем три байта и прочитаем их обратно. После записи позиция стоит в конце, поэтому перед чтением её возвращают в 0, иначе Read вернёт 0:
using System.IO;
byte[] source = [10, 20, 30];
using MemoryStream buffer = new();
buffer.Write(source, 0, source.Length);
buffer.Position = 0;
byte[] copy = new byte[3];
int read = buffer.Read(copy, 0, copy.Length);
Console.WriteLine(read); // выведет 3
Console.WriteLine(copy[1]); // выведет 20
Запишите в MemoryStream байты 9 и 10, верните Position в 0 и выведите сумму двух прочитанных байт.