删除前N行文件

Dyg*_*nus 4 go

我想知道如何可以删除特定文件的第一N行有效.

当然,我们可以将完整的文件加载到内存中,然后删除前N行并将完整更改的内容写入文件.

但是,我想知道是否有一种方法可以使这比仅仅加载内存中的所有内容更有效.

nos*_*nos 5

文件系统不支持从文件的任意位置删除,因此您至少需要自己重写整个文件.实现您需要的常见方法是

  • 打开一个临时文件,
  • 从原始文件中读取小块,例如,在您的情况下一次读取一行
  • 仅将要保留在原始文件中的行写入临时文件
  • 完成后将临时文件重命名为原始文件名.