Без полного чтения файла (хотя бы один раз, например построить индекс) до нужной строки, без знания о размерах этих строк - невозможно
Построить индекс очень просто - считываешь по строчке файл и после каждой запрашиваешь текущую позицию в файле, сохраняя полученные числа в массив, который сохраняешь и пользуешься. Для чтения в последствии достаточно сделать seek в нужную позицию.
p.s. если размер строк фиксированный, то само собой можно вычислить позицию в файле простым умножением номера на размер строки
p.p.s. если строка может быть приблизительной, то точно так же можно посчитать примерную длину строк в файле (сделав несколько чтений из разных частей файла и посчитав средний размер строк) и умножить ее на требуемую позицию, ошибка само собой будет уменьшаться в зависимости от распределения длин строк и количества проверочных чтений из файла для получения средней длины