Я предполагаю, что этот файл может быть огромным (скажем, в диапазоне гигабайт).
Предполагая, что переносимость не является проблемой, вы можете использовать карту памяти, отображаемую в io.Во многих системах Unix у вас есть команда mmap .
Хороший учебник можно найти здесь .
Если вам нужно сделать это для систем Windows, можно найти эквивалентный пример для Windows здесь .
Что эффективно делает mmap, так это отображает файл в область памяти текущих процессов.Когда кто-то хочет прочитать бит файла, ОС копирует биты просматриваемого файла в оперативную память для доступа пользователя.Это делается с помощью того же механизма, который позволяет ОС перемещать память из неактивных процессов на диск до тех пор, пока она не потребуется снова.
Единственный сложный бит будет делить блоки файлов на строки.