Поблочно записать массив байтов в файл - C#
Формулировка задачи:
Есть массив байтов размером 256 КБ. Нужно записать его поблочно в файл(повторить 10 раз, размер блока изменять в диапазоне 512-1024 байта). Проблема в том, что я не совсем понимаю как избежать выход за границу массива. В конце цикла for у меня значение счетчика превышает размер массива и я получаю исключение.
static void Main() { var sourceArray = new byte[256 * 1024]; new Random().NextBytes(sourceArray); var blockSizes =new[] { 512, 512 + 512/10, 512 + (512/10)*2, 512 + (512/10)*3, 512 + (512/10)*4, 512 + (512/10)*5, 512 + (512/10)*6, 512 + (512/10)*7, 512 + (512/10)*8, 1024 }; foreach (var bs in blockSizes) using (var fs = new FileStream(bs.ToString(), FileMode.Create)) for (var i = 0; i < sourceArray.Length; i += bs) fs.Write(sourceArray, i, bs); }
Решение задачи: «Поблочно записать массив байтов в файл»
textual
Листинг программы
fs.Write(sourceArray, i, bs+i>sourceArray.Length?sourceArray.Length-i:bs);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д