我尝试使用 FileChannel 将特定字节写入文件的某个位置。但实际上文件缩小到我写更改的最后一个位置。我这样做:
Path path = Paths.get("I://music - Copy.mp3");
System.out.println(Files.size(path)/1024 + "KB");
try (FileChannel chan = new FileOutputStream(path.toFile()).getChannel()) {
chan.position(1024 * 1024);
ByteBuffer b = ByteBuffer.allocate(1024);
chan.write(b);
System.out.println("Write 1KB of data");
}
System.out.println(Files.size(path)/1024 + "KB");
这是我得到的输出:
3670KB
Write 1KB of data
1025KB
谁能告诉我哪里出错了??