Я работаю над проблемами в Programming Pearls, 2-е издание, столбец 1. Одна из проблем связана с написанием программы, которая использует только около 1 мегабайта памяти для хранения содержимого файла в виде битового массива, где каждый бит представляет, является ли или в файле нет 7-значного числа. Поскольку Java — это язык, с которым я лучше всего знаком, я решил использовать его, хотя автор, похоже, имел в виду C и C++.
Поскольку я притворяюсь, что память ограничена для решения проблемы, над которой я работаю, я хотел бы убедиться, что процесс чтения файла вообще не имеет буферизации.
Я думал, что InputStreamReader
будет хорошим решением, пока не прочитал это в Документация по Java:
Чтобы обеспечить эффективное преобразование байтов в символы, из базового потока может быть прочитано больше байтов, чем необходимо для выполнения текущей операции чтения.
В идеале из потока будут считываться только те байты, которые необходимы — другими словами, мне не нужна буферизация.