在文件java之间插入

时间:2016-12-04 12:05:15

标签: java insert inputstream file-handling outputstream

我有一个文件,我必须在文件的特定位置插入字节数组,然后必须从该位置读取该数组。我怎么能在java中做到这一点?

2 个答案:

答案 0 :(得分:0)

  1. Load the file as a byte array

  2. 创建一个字节数组,其大小与您在1.处获得的数组大小相同。

  3. 将文件中的前缀复制到新的字节数组中,即所需位置之前的字节

  4. 将要包含的字节数组复制到从位置开始的子数组

  5. 将文件的后缀复制到字节数组中。

  6. Save your byte array back to the file

  7. 这是写作部分。至于读取部分,您需要将文件加载到1中描述的字节数组中,然后从位置读取子数组直到长度。

答案 1 :(得分:0)

您可以使用RandomAccessFile(https://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html)来读取或写入文件中的任意位置。

但是,如果您需要插入新数据而不覆盖旧数据(即将现有数据移到右侧),则无法通过API直接完成。例如,您可以创建一个新的空文件,将原始文件中的所有内容复制到特定位置,写入新数据,附加原始文件中的剩余数据等。

使用FileChannels和代码示例的另一个解决方案可以在这里找到:https://stackoverflow.com/a/17565931/7247713