При работе с потоком вы часто читаете байты в чанке.
Если вы читаете / записываете байты один за другим, тогда возникает много накладных расходов (например, инициализация массива для хранения байта, помещение байта в поток, запоминание текущей позиции в файле ... и т. Д.) Для каждого байта.
Таким образом, если вы читаете группу байтов, у вас все еще есть эти служебные данные, но они меньше (например, если у вас 4000 байтов, у вас 4000x служебных данных. Но если вы читаете 100 байтов за раз, у вас 4000/100 = 40x служебных данных только)
Длина порции часто выбирается для баланса между временем чтения / записи порции и размером порции.
Его часто устанавливают на 2К или 4К. Может быть связано с сектором диска (512 байт, 2048 байт ...)