ZerG
Тебе правильно подсказали
Не нужно пытаться проглотить камаз целиком.
Твоя задача получить рандомные слова. Таким образом тебе нужно прежде всего отщипнуть от большого файла
по одной строке, мегабайту, длине - его кучоски в рандомных областях, после чего из полученных мелких кусочков вытянуть по слову и склеить их
посмотри в сторону chunks
https://www.bluebirz.net/en/make-it-chunks/ - это не решение твоей проблемы но наведет на мысли. Я гдето видел примеры можно просто указывать в мегабайтах кучски например содерэимое с 123 по 124 метр.
Итд. В любом случае открывать 40 гиг в память ради двух слов - ето какойто тупизм.
Если реально нужно очень много таких операций то наверное будет правильнее уже разово загнать весь этот файл в какую нить базу данных и стрелять из нее запросами
Какую именно базу выбрать нужно решать по структуре запроса и хранения данных
Это всё хорошо, но я вообще в этом новичёк, точнее чайник! Думал есть готовое решение! Задача не такая сложная как я понимаю, да и 40 гиг в наше время это вообще мелочь, но как оказалось по-моему это не реально