最初,当我创建 RandomAccessFile 时,我跳过了一些字节,所以这些字节保持为空,但现在我需要删除我写的一些字节。现在,我正在做的是用空格覆盖位置,但有没有办法将它设置回空?
编辑:由于它必须包含一个值,我想知道如何将它设置回它被跳过时默认分配的原始值。
最初,当我创建 RandomAccessFile 时,我跳过了一些字节,所以这些字节保持为空,但现在我需要删除我写的一些字节。现在,我正在做的是用空格覆盖位置,但有没有办法将它设置回空?
编辑:由于它必须包含一个值,我想知道如何将它设置回它被跳过时默认分配的原始值。
文件不能包含“空”字节。文件中的每个字节必须有一个介于 0 和 255 之间的值。
如果你想在某个点之后“擦除”所有字节,你可以使用RandomAccessFile.setLength
which 截断文件。
关于您的评论:如果您想将一些字节设置回它的原始值,我建议您将 a 封装RandomAccessFile
在您自己的类中,并使用从索引到原始字节值的映射,您在每次调用write
. 然后,该子类可以提供一种方法,通过在映射中查找原始值restore(int i)
来恢复索引处的字节值。i
非常不清楚您要做什么,但是您不能从文件的开头或中间“删除”字节。您通常可以截断文件,但不能从中间删除位 - 您通常会创建一个新文件,只复制您想要的数据,然后可能适当地重命名文件。