Вероятно, чтение файла ограничивает производительность, операции, выполняемые с данными, имеют незначительную стоимость по сравнению с чтением файла.Чтобы сделать это эффективным, лучше всего делать это достаточно большими порциями, поэтому один байт за раз может быть в принципе плохим.
Однако на практике, вероятно, за кулисами происходит некоторая умная буферизация,Таким образом, даже если ваша программа запрашивает только один байт за раз, файл в действительности читается большими кусками, обеспечивая примерно ту же производительность, что и ваш первый подход.
(Выше предполагалось, что чтениефайл полностью доминировал над затратами. Если это не так, и если доступ к памяти был медленным, может случиться так, что однобайтовый подход может быть более быстрым, поскольку при таком подходе избегается двойной доступ к одной и той же части памяти.)