>>112
1行ずつ読んで希望の行が出てくるまで読み飛ばせば
メモリは食わないよ。

行が固定長であるとか、各行の先頭位置が別に保存してある
とかならいきなり希望の行の頭にseekして読めるけど。