Я пытаюсь перенести программу Perl на Java и изучать Java, когда я иду. Центральным компонентом исходной программы является Perl-модуль, который выполняет строковые префиксные поиски в отсортированном текстовом файле +500 ГБ с использованием бинарного поиска (по существу, "искать" смещение байта в середине файла, отступать до ближайшей новой строки, сравнивать префикс строки со строкой поиска, "искать" половину/удвоить смещение байта, повторить до тех пор, пока не будет найдено...)
Я экспериментировал с несколькими решениями для баз данных, но обнаружил, что ничто не сравнится с этим в абсолютной скорости поиска с наборами данных такого размера. Знаете ли вы о какой-либо существующей библиотеке Java, которая реализует такие функции? В противном случае вы могли бы указать мне какой-нибудь идиоматический пример кода, который делает произвольный доступ в текстовых файлах?
В качестве альтернативы, я не знаком с новыми (?) Java-I/O-библиотеками, но будет ли это вариант для карты памяти с 500-гигабайтным текстовым файлом (я на 64-битной машине с запасной памятью) и выполнять бинарный поиск в массиве байтов с отображением памяти? Мне было бы очень интересно услышать любой опыт, который вы должны поделиться об этом и схожих проблемах.