可能重复:
在Java文件中间写入字节的最佳方法
我有一个文件,我需要写入字节.
我知道文件中的哪个位置需要插入特定的字节.为了清楚起见,我需要在文件中间写入字节而不删除任何现有字节.然后整个操作应该增加文件的长度.
这样做的最佳方法是什么?
小智 6
执行此操作的唯一方法是移动当前阻碍的字节.根据您必须执行此操作的频率以及文件的大小,创建新文件,复制现有文件以及沿途插入新字节通常更好.
如果您不经常更新文件,或者它很小(最多可能100 kb),您可以使用RandomAccessFile:
setLength()方法扩展文件,将要插入的字节数添加到length()方法返回的内容中.byte[]包含从插入点到文件上一端的所有字节的内存.seek()插入点的位置readFully()填充临时数组seek()插入点的位置+要插入的字节数write()在此时调用写缓冲区seek()在插入点重新定位如果在步骤#2中无法创建足够大的数组,则必须在具有较小缓冲区的循环中执行步骤3-6.我会使用至少64k缓冲区来提高效率.