您这里有一个基本问题。当前的文件系统(据我所知)没有提供一种从文件中间删除一堆字节的功能。您可以覆盖现有字节,或写入新文件。因此,您的选择是:
- 创建该文件的副本(不包含违规行),删除旧的副本,并在适当位置重命名新文件。(这是您要避免的选项)。
- 用将被忽略的内容覆盖该行的字节。根据 确切 地读取文件的内容,注释字符可能起作用,或者空格可能起作用(甚至可能是)。但是,如果要完全通用,则CSV文件不建议使用此选项,因为没有定义的注释字符。
- 作为最后的绝望措施,您可以:
- 阅读您要删除的行
- 将文件的其余部分读入内存
- 并用您要保留的数据覆盖该行和所有后续行。
- 将文件截断为最终位置(文件系统通常允许这样做)。
如果您要删除第一行,最后一个选项显然无济于事(但如果您想删除末尾的行,这很方便)。它还非常容易在过程中崩溃。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)