Я пытаюсь получить доступ к данным (только для чтения) из очень большого (> 100 ГБ) текстового файла с кодировкой ascii. Файл в основном содержит координаты (16-значное число с плавающей запятой, включая десятичную точку) и некоторую другую второстепенную информацию (имена и т. д.).
Поэтому я рассматриваю возможность использования RandomAccessFile, чтобы избежать загрузки большого объема данных в память. (Я мог бы, например, кэшировать строки данных в памяти, чтобы ускорить их, но давайте сохраним это на потом и предположим, что время здесь не имеет значения, пока оно не приближается к бесконечности).
Вопрос: могу ли я предположить, что методы seek и read не заставят RandomAccessFile загружать огромное количество данных в память?
Большое тебе спасибо.
DataInputStream
вокругBufferedInputStream
. Вы обнаружите, что это во много раз быстрее, и единственная стоимость памяти - это буферBufferedInputStream
. - person user207421   schedule 15.01.2017