文件的java

问题描述:

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

+0

通过写入必要的代码来从一个位置读取的字节的阵列开始。然后回到我们的问题是如何插入一个字节数组。当你这样做时,向我们展示你的代码。 –

  1. Load the file as a byte array

  2. 创建有你在1得到了数组大小的字节数组+您的字节数组的大小插入。

  3. 复制前缀从文件到您的新的字节数组,也就是位置之前的字节,你的愿望

  4. 复制你的字节数组包含从位置开始的子阵列

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

  6. Save your byte array back to the file

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

+0

你可以分享一下代码吗? – Mian

+0

@Mian,这不是一个代码写入服务。这个答案描述了问题应该被解决的方式,但是假定提问者和他的同学实际上想要解决问题。 –

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

但是,如果你需要,而不会覆盖旧插入新的数据(即转移现有数据,以正确的),不能直接通过API来完成。例如,您可以创建一个新的空文件,从原始文件复制所有内容,直到指定位置,写入新数据,附加原始文件中的其余数据等。

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