可能的重复:
在 Java 中在文件中间写入字节的最佳方法
我有一个需要在其中写入字节的文件。
我知道我需要在文件中的哪个位置insert特定字节。为了清楚起见,我需要在文件中间写入字节而不擦除任何现有字节。整个操作应该会增加文件的长度。
最好的方法是什么?
做到这一点的唯一方法是移动当前挡住的字节。根据执行此操作的频率以及文件的大小,通常最好创建一个新文件,复制现有文件并在此过程中插入新字节。
如果您需要不经常更新文件,或者文件很小(最多 100 kb),您可以使用随机访问文件:
- 扩展文件,使用
setLength()
方法,将要插入的字节数添加到返回的内容中length()
method.
- 如果你有足够的内存,创建一个
byte[]
它将保存从插入点到文件前一个结尾的所有字节。
- Call
seek()
定位在插入点
- Call
readFully()
填充你的临时数组
- Call
seek()
插入点的位置+要插入的字节数
- Call
write()
此时写入缓冲区
- Call
seek()
重新定位到插入点
- 调用`write()写入新字节
如果您无法在步骤 #2 中创建足够大的数组,则必须使用较小的缓冲区在循环中执行步骤 3-6。为了提高效率,我会使用至少 64k 缓冲区。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)