我有一个包含很多零的文件,根据要求,文件中的零无效。我正在使用RandomAccessFile api 来定位文件中的数据。有没有办法可以使用相同的api从文件中删除所有零。
问问题
1102 次
2 回答
4
您必须流式传输文件并将内容(减去零)写出到单独的临时文件中。然后您可以关闭并删除原始文件并将新文件重命名为旧文件名。这是此特定用例的最佳选择。
于 2014-03-24T10:53:25.223 回答
0
您可以使用 RandomAccessFile 读取文件的数据,当您到达需要更改数据的点时,您可以用相同的字节数覆盖现有的字节数。如果新值与旧值的长度完全相同。
使用 RandomAccessFile 时,它的困难和同样复杂,当大小为两个时,一个被更改的和新的值不同。它涉及大量的查找、读取和写入以将数据移回
尝试读取整个文件,更改您必须更改的位并写入一个新文件。您可以一次处理一行,或者将整个文件读入内存,修改它并再次将其全部写回。最好按以下方式执行编辑:
- 读取文件
- 写入临时文件[只是为了备份]
- 将原件重命名为备份件
- 处理临时文件。
- 如果成功,请删除备份。
于 2014-03-24T11:12:00.110 回答