Java 在不超过整个字节缓冲区的情况下编辑文件?

Java 在不超过整个字节缓冲区的情况下编辑文件?,java,android,file,file-io,Java,Android,File,File Io,我想在一个大小为100MB的文件中,用另一个字节数组“覆盖”或“切换”一些字节(比如文件中的前2048个字节)。 我不想看整个文件,因为我要花一段时间才能看完整个文件 到目前为止,我所尝试的: FileOutputStream out = new FileOutputStream(file); out.getChannel().write(buffer, position); 新的缓冲区数组大小相同 我正在使用java+EclipseAndroid应用程序进行开发,该应用程序需要满足这一需求

我想在一个大小为100MB的文件中,用另一个字节数组“覆盖”或“切换”一些字节(比如文件中的前2048个字节)。
我不想看整个文件,因为我要花一段时间才能看完整个文件

到目前为止,我所尝试的:

FileOutputStream out = new FileOutputStream(file);

out.getChannel().write(buffer, position);
新的缓冲区数组大小相同

我正在使用java+EclipseAndroid应用程序进行开发,该应用程序需要满足这一需求。
如果有人能给我写一段代码来完成这项工作,我会很高兴的

提前谢谢

这将用
数据
数组的内容覆盖文件的前2048字节

final RandomAccessFile file = new RandomAccessFile(filename, "rw");
final FileChannel channel = file.getChannel();
final byte[] data = new byte[2048];          // lets say it's got the data you want
final ByteBuffer buff = ByteBuffer.wrap(data);

channel.position(0);                         // (we were already here, but as an example)
channel.write(buff);                         // writes the entire 2028 bytes from buff
channel.force(false);                        // (superfluous if you close() afterwards)
channel.close();                             // close the file descriptor

我们不会为您编写代码,但会尽力帮助您修复您迄今为止尝试过的任何问题。@Marc B:谢谢,我已将其添加到问题中body@Bhavik安巴尼:你确定吗?如果c可以,为什么Java不行?你说的是用2048个新字节覆盖前2048个字节,还是用任意大小的数组覆盖前2048个字节?写一个本机函数怎么样,使用它呢?@TalKanel:我不确定我做了什么与你看起来做的不一样的事情-但这就是如何做到的…基本上你提供给我的解决方案是可行的,但现在我的问题是,对我刚刚修改的文件(刷第一个字节)的评估似乎有时被拒绝了。只有在几秒钟过后,我才能使用修改过的文件。你知道我能做些什么吗?(除了在使用文件之前等待一段时间之外)。可能文件没有正确关闭?谢谢。@TalKanel:这似乎是一个新的SO问题的很好的候选人-这样你可以提供足够的细节和错误消息。。。