То, что предлагают другие файлы stackoverflow, является не только эффективным решением. Это очень эффективное решение.
Лучшее, что вы можете сделать, - это выделить большой буфер настолько большим, насколько это позволяет ваша память. Читайте все до строки, все после строки. Объединить в новый файл.
Когда файл создается, он не просто создает имя файла. Операционная система также выделяет место, которое занимает файл, если мы предполагаем, что делаем так, как вы говорите. Эффективно удалить строку из файла, это будет означать сокращение выделенного пространства. Как вы думаете, это достигается? Выделив новый кусок памяти.