我想在一个大小为100MB的文件中“覆盖”或“切换”一些字节(比如文件中的前2048个字节)和另一个字节数组。
我不想阅读整个文件,因为我需要批评时间来查看整个文件。
到目前为止我尝试过:
FileOutputStream out = new FileOutputStream(file);
out.getChannel().write(buffer, position);
新缓冲区阵列的大小相同。
我正在开发java + eclipse Android应用程序,需要这样做 如果有人能给我写一份能够完成这项工作的代码,我会很高兴的。
提前致谢。
答案 0 :(得分:2)
此使用data
数组的内容覆盖文件的前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