Удалить строку из файла .cvs? - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть большой файл, из которого мне нужно удалить конкретную строку. У меня есть точный номер строки, которую я хочу удалить, и я не могу найти решение пути к go непосредственно к этой строке и удалить его.

Большинство ответов в StackOverflow просто предлагают перебирать весь файл и в основном копировать его во временный файл, а когда найдена целевая строка, просто не включать ее, менять имена файлов и удалять.

Это не похоже на очень эффективное решение, особенно для большого файла, и это заставляет меня пользоваться им. Любые другие идеи, которые не принимают этот подход?

1 Ответ

0 голосов
/ 06 апреля 2020

То, что предлагают другие файлы stackoverflow, является не только эффективным решением. Это очень эффективное решение.

Лучшее, что вы можете сделать, - это выделить большой буфер настолько большим, насколько это позволяет ваша память. Читайте все до строки, все после строки. Объединить в новый файл.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...