У меня этот огромный алфавитно отсортированный индекс, и мне нужно получить строки для определенных терминов. Чтение файла по строкам и проверка правильности ли я правильного термина не кажется мне эффективным, поэтому размер индекса (мы проиндексировали английский википедический корпус).Java: Лучший способ найти слово в алфавитном отсортированном текстовом файле
Для этого я ищу способ сделать бинарный поиск по линиям. Я использую LineNumberReader для эффективного получения количества строк, но, похоже, нет эффективного решения для получения n-й строки из файла.
Мне интересно, читаем ли строки до тех пор, пока не нахожусь на n-й строке, проверяя, является ли это правильным термином, и предпринимайте действия в соответствии с алгоритмом бинарного поиска (возможно, снова прочитав строки, потому что мне нужна строка, которую я уже пропустил) является более эффективным, а затем просто проверяет сроки линии за строкой?
Любые другие предложения также приветствуются!
Обратите внимание, что мне нужно получить набор строк, в зависимости от набора терминов для поиска.
Обратите внимание, что ['LineNumberReader'] (http://docs.oracle.com/javase/7/docs/api/java/io/LineNumberReader.html) не требует эффективного индексации файла или получения количества линий. Он просто сообщает текущий номер строки, когда он читает файл линейно. –
Хорошо, спасибо, что сообщили мне. – ljtijhuis