Если требуется оптимизация - описывай подробно задачу!
- а я её и описал, но если надо по-пунктам, то вот:
1. имеется файл, который содержит к примеру 200'000 строк
2. строки имеют различную длинну
3. конец строки "\n", к примеру
Сам вопрос - как из такого файла удалить строку под номером 128'174 ?
Если использовать два файла, то на файлах в 50 мегабайт нужно ждать долго.
Код тоже желательно приложить, а то на словах всё легко.
Если надо удалить строку физически, то других вариантов как перезаписать хвост файла или весь файл - НЕТ!
Но могут быть другие подходы для решения проблемы.
То что ты написал этого не достаточно, описывай задачу подробно.
Например:
- как часто удаляются строки
- какая типичная и максимальная длина строки
- какие еще операции производятся (чтение/вставка/добавление в конец) и над чем
- каков источник данных(файла)
- нафига это нужно
- ...
Может тебе действительно проще всасать данные из файла в SQL базу и работать с ними.
В твоем кратком описании интересны только первые два пункта.