Насколько велик файл?Вы делаете больше, чем один проход?Читаете ли вы это в буфере в памяти или нет, чтение файла потребует (размер файла / BUFSIZ
) чтения, чтобы пройти через все это.Чтение символ за символом не имеет значения, потому что базовое чтение все еще потребляет байты BUFSIZ за раз (если вы не предпримете шаги, чтобы изменить это поведение) - оно просто передает их символ за символом.
Есливы все равно читаете и обрабатываете его за один проход, затем чтение в память будет означать, что вы всегда нуждаетесь (размер файла / BUFSIZ
), где - при условии, что причина остановки распределена равновероятно- чтение и обработка в строке займет в среднем (размер файла / BUFSIZ
) * 0,5 чтения, что для большого файла может принести существенный выигрыш.
Еще более важный вопрос может быть «чтовы ищете это сложное решение? "Время, затрачиваемое на выяснение симпатичного решения, вероятно, преобладает над всеми выгодами, которые вы получите от поиска чего-то более изумительного, чем стандартное решение «пока не конец файла, получите символ и процесс».