使用RandomAccessFile删除文件内容

时间:2014-03-24 10:41:32

标签: java file randomaccessfile

我有一个包含大量零的文件,根据要求,文件中的零无效。我正在使用RandomAccessFile api来查找文件中的数据。是否可以使用相同的api从文件中删除所有零。

2 个答案:

答案 0 :(得分:4)

您必须流式传输文件并将内容(减去零)写入单独的临时文件。然后,您可以关闭并删除原始文件,并将新文件重命名为旧文件名。这是这个特定用例的最佳选择。

答案 1 :(得分:0)

您可以使用RandomAccessFile来读取文件'数据,当您到达需要更改数据的点时,您可以使用相等的字节数覆盖现有的字节数。如果新值与旧值的长度完全相同,则为

使用RandomAccessFile时,它的难度和同样复杂,当大小为2时,一个被改变而新值不同。它涉及大量的搜索,读取和写入以移回数据

尝试读取整个文件,更改必须更改的位并写入新文件。您可以一次处理一行或将整个文件读入内存,修改它并将其全部重新写回来。以下列方式执行编辑是个好主意:

  1. 阅读文件
  2. 写入临时文件[仅供备份]
  3. 将原始版本重命名为备份
  4. 处理临时文件。
  5. 如果您成功,请删除备份。