我有一个文件,我必须在文件的特定位置插入字节数组,然后必须从该位置读取该数组。我怎么能在java中做到这一点?
答案 0 :(得分:0)
创建一个字节数组,其大小与您在1.处获得的数组大小相同。
将文件中的前缀复制到新的字节数组中,即所需位置之前的字节
将要包含的字节数组复制到从位置开始的子数组
将文件的后缀复制到字节数组中。
这是写作部分。至于读取部分,您需要将文件加载到1中描述的字节数组中,然后从位置读取子数组直到长度。
答案 1 :(得分:0)
您可以使用RandomAccessFile(https://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html)来读取或写入文件中的任意位置。
但是,如果您需要插入新数据而不覆盖旧数据(即将现有数据移到右侧),则无法通过API直接完成。例如,您可以创建一个新的空文件,将原始文件中的所有内容复制到特定位置,写入新数据,附加原始文件中的剩余数据等。
使用FileChannels和代码示例的另一个解决方案可以在这里找到:https://stackoverflow.com/a/17565931/7247713