在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
调用即可隐式扩展它。