2015-02-11 73 views
-1

如何在不覆盖任何数据的情况下在android或java文件的中间(特定位置)写入字节?如何在android/java中的文件中间写入字节

如果我有大小500KB的文件,我希望以后200KB

这个问题已经被标记为添加512个字节的数据作为复制但称问题不有一个答案。

+0

请参阅[this](http://stackoverflow.com/questions/181408/best-way-to-write-bytes-in-the-middle-of-a-file-in-java) – 2015-02-11 11:09:49

+0

定义文件。它是一个文本文件,你想添加一些字符或原始二进制文件? – 2015-02-11 11:09:52

+0

@JoanColmenero:但是这会覆盖文件内容,OP不需要 – cello 2015-02-11 11:11:23

回答

1

简单的回答:你不能。您可以跳至200kb,但您需要阅读文件的其余部分,例如在ByteBuffer中,返回200kb位置,写入512字节,然后再从ByteBuffer中写入300kb。按照设计,文件内容不能“转移”,只能阅读和(写),所以你必须做自己的转变。

+0

'RandomAccessFile'呢?这是否让我**寻找**文件中的特定位置? – 2015-02-11 11:17:12

+0

@ShreyasTripathy是的,但它不能解决你的问题。虽然seek可能比skip更快,但您仍然需要向前复制剩余的数据。 – haraldK 2015-02-11 11:22:29

+0

@haraldK - 目前的解决方案呢[这里](http://stackoverflow.com/questions/12677170/write-bytes-into-a-file-without-erasing-existing-bytes?lq=1)? – 2015-02-11 11:23:55