在Java中,使用RandomAccessFile可以创建一个文件,然后执行setLength
现在假设我分配了1024 bytes的长度。现在我写了512 bytes
现在我再次想写256 bytes而不更改文件大小并清除那些512 bytes

我不想在过程中间使用setLength(0)来避免java.io.IOException: No space left on device

最佳答案

您可以使用搜寻:

file.setLength(1024);
file.write(new byte[512]); //or some other 512 bytes
//close and reopen later
file.seek(512);
//write 256 more bytes


编辑:我认为您没有意识到RandomAccessFile的精神。您可以将其创建为512字节并继续对其进行写入,以便无需setLength调用即可隐式扩展它。

10-07 19:32
查看更多