在Java中使用RandomAccessFile
我可以创建一个文件,然后执行setLength
现在假设我分配1024 bytes
的长度。现在我写了512 bytes
。
现在,我想再次编写256 bytes
而不更改文件大小并清除512 bytes
我不想在流程中使用setLength(0)
来避免java.io.IOException: No space left on device
答案 0 :(得分:4)
您可以使用搜索:
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
调用的情况下隐式扩展。