什么更快:重写文件或删除,然后使用java创建文件?

什么更快:重写文件或删除,然后使用java创建文件?,java,file-manipulation,Java,File Manipulation,需要更新文件。我看到两种方法:第一种是重写文件(合并内容),第二种是删除以前的文件,然后用新内容创建新文件。我传递所有文件的内容,其重量约为1KB。快一点的方法是什么 实际上不确定,但理论上合并内容应该更快。Delete n create means-删除文件的指针,创建新指针,并为其分配内存和磁盘空间。合并意味着分配已经存在,只需要扩展它。虽然合并现有文件内容不需要在正在合并的新文件的内存中调用,但在创建新文件时,所有内容都将在内存管理中调用。除非有很多文件,或者随着时间的推移,它将生成大文件

需要更新文件。我看到两种方法:第一种是重写文件(合并内容),第二种是删除以前的文件,然后用新内容创建新文件。我传递所有文件的内容,其重量约为1KB。快一点的方法是什么

实际上不确定,但理论上合并内容应该更快。Delete n create means-删除文件的指针,创建新指针,并为其分配内存和磁盘空间。合并意味着分配已经存在,只需要扩展它。虽然合并现有文件内容不需要在正在合并的新文件的内存中调用,但在创建新文件时,所有内容都将在内存管理中调用。除非有很多文件,或者随着时间的推移,它将生成大文件,否则您不会注意到它

在重新创建文件之前,没有必要删除它。您可以用新内容覆盖它。您不能真正“合并”一个文件,因为在文件系统级别上,块无论如何都会被完全覆盖,即使您只更改了1个字节

如果您已经有了想要在文件中结束的内容,只需覆盖文件即可


如果有依赖于现有文件的更新数据,请将该文件读入内存(前提是它足够小),在内存中合并数据,然后覆盖该文件。其实没那么复杂。

我想你可以检查一下,就像做事情最快的方法就是不做一样。首先删除现有文件是一个额外的操作(顺便说一句,这是非常昂贵的,因为它对文件系统使用IO)。因此,首先删除文件的速度会较慢。但决不要将性能决策建立在推理的基础上。始终通过测量证明您的系统确实存在瓶颈,并且替代方法确实解决了它!删除文件并不昂贵。你告诉文件系统“嘿,把这个文件标记为已删除”,就这样。但如果要覆盖文件,则无需先删除它。只需用新数据覆盖它。