Причиной исключения является то, что вы предоставляете смещение там, где не должны, как говорится в сообщении об исключении.
При любой длине файла больше нуля первый Write()
будет выдан, поскольку смещение плюс длина будут находиться за пределами len
.
Параметр смещения обозначает смещение в байтовом массиве, которое в обоих случаях должно быть равно нулю, так как вы хотите записать весь массив:
stream.Write(len, 0, len.Length);
stream.Write(val, 0, val.Length);
Если вместо этого вы хотите добавить в конец файла, см. Добавление данных к существующему файлу в C # . Если вы хотите начать запись в другом месте, используйте Seek()
, чтобы изменить позицию потока.