FileChannel - 在eof附加字节缓冲区?

时间:2016-05-04 10:51:55

标签: java bytebuffer filechannel

我想知道是否有可能添加 使用文件通道的位置方法将字节缓冲区放到文件末尾。

我已经读过打开文件输出流是必要的 附加标志

ByteBuffer byteBuffer = ...;
FileOutputStream fileOutputStream = new FileOutputStream("path/to/file", true);
FileChannel channel = fileOutputStream.getChannel();

channel.write(bytebuffer);
channel.force(true);
channel.close();

但不应该附加缓冲区 通过修改频道的位置。

"The size of the file increases when bytes are written beyond its current size"

ByteBuffer byteBuffer = ...;
FileOutputStream fileOutputStream = new FileOutputStream("path/to/file");
FileChannel channel = fileOutputStream.getChannel();

channel.position(channel.size()).write(bytebuffer);
channel.force(true);

我会很感激自文件以来的一些解释 被覆盖。

1 个答案:

答案 0 :(得分:2)

在第二个示例中,文件被覆盖,因为您没有指定值为$ cat output_names.csv text,john,george,peter,thomas peter is awesome,0,0,1,0 john is lazy,1,0,0,0 thomas is thomas,0,0,0,1 george is curious,0,1,0,0 $ 的{​​{1}}参数。之后,将其定位在EOF只是将其定位为零。