FileChannel
方法返回什么类型的FileChannel.open(path)
对象?
是否仍然允许随机访问,如同以下一样?
RandomAccessFile ra = new RandomAccessFile("RandomIndeed","rw");
FileChannel fc1 = ra.getChannel();
fc1
与以下实例fc
之间的区别是什么:
FileChannel fc = FileChannel.open(path);
基本上我想知道上面创建的2个对象之间的差异,因此fc1
和fc
提前致谢。
答案 0 :(得分:1)
从FileChannel
实例获取的RandomAccessFile
实例带有已创建对象的随机访问行为,在这种情况下,fc1
与ra
对象同步。您可以在javadoc
更改频道的位置,无论是明确还是通过阅读或 写入字节,将改变原始文件的位置 对象,反之亦然。通过文件更改文件的长度 通道将改变通过原始对象看到的长度,并且 反之亦然。通过写入字节来更改文件的内容将会改变 原始对象看到的内容,反之亦然。
但是使用FileChannel
创建的FileChannel.open()
实例fc
没有此行为。这适用于您从Streams获得的FileChannel
个实例。它只保证文件视图在同一程序创建的对象之间是一致的。希望这对你有帮助。