我有一个包含大量零的文件,根据要求,文件中的零是无效的。我使用RandomAccessFile api来定位文件中的数据。是否有办法让所有的零可以从文件中删除使用相同的api
您必须流式处理该文件并将内容(减去零)写入一个单独的临时文件。然后,您可以关闭并删除原始文件,并将新文件重命名为旧文件名。
您可以使用RandomAccessFile读取文件的数据,当您到达需要更改数据的点时,您可以用相等的字节数覆盖现有的字节数。如果新值与旧值的长度完全相同,
使用RandomAccessFile是困难的,同样复杂的,当两个的大小,被改变的一个和新的值是不同的。它涉及大量的查找,读取和写入来将数据移回
尝试读取整个文件,更改需要更改的位,然后写入一个新文件。您可以一次处理一行,或者将整个文件读入内存,修改后再全部写出来。以以下方式执行编辑是一个好主意:
- 读文件
- 写入临时文件[只是为了备份]
- 将原文件重命名为备份文件
- 创建临时文件
- 如果成功,请删除备份。