Если записи отсортированы по удобному ключу, и вы можете определить, где заканчивается одна запись, а другая начинается, тогда вы можете реализовать двоичный или интерполяционный поиск. Вы можете добавить это в свой формат текстового файла ретроспективно, чтобы облегчить поиск. В противном случае вы застряли в последовательном поиске из позиции с известным индексом (очевидно, начало файла равно единице, если вы знаете общее количество записей, которое вы можете обработать в обратном направлении от конца файла). Вы также можете рассмотреть возможность выполнения одного прохода для создания индекса, обеспечивающего прямой доступ, или добавления в файл списка смещений, которые легко читаются.