2012-11-25 79 views
1

在Java中,如何从二进制文件中删除内容?我是否需要将除去已删除部分的所有内容复制到临时文件中,并将其重命名为现有文件?从二进制文件中删除

+0

为什么你认为如果你从二进制文件中删除内容,你会不会损坏它? – Cratylus

回答

3

无法直接在磁盘上删除文件内容。您需要将不包括要删除部分的文件内容复制到临时文件。现在删除原始文件并重命名临时文件。

0

如果格式不匹配,你可以用0覆盖,否则你将不得不创建一个新文件并替换原来的文件。这对任何语言都是一样的

+0

用零覆盖与删除不同。 –

+0

这一切都取决于偏执/如何确定你需要的数据已经消失。 用0覆盖文件的一部分可能比从其他方法中删除数据的机会更大,因为它只会更新磁盘上的扇区。 创建新文件并替换原始文件可能会使磁盘上的原始文件内容保持不变并且文件名称指向新版本。 – hardillb

+0

您总是需要创建一个包含旧数据的新文件,减去“已删除”部分。不管你是否将以前的文件内容归零是另一回事。你的回答目前不解释。 –