首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RandomAccessFile与FileChannel.open(路径);

RandomAccessFile与FileChannel.open(路径);
EN

Stack Overflow用户
提问于 2013-05-09 15:09:34
回答 2查看 2.8K关注 0票数 4

FileChannel方法返回什么类型的FileChannel.open(path)对象?

它是否仍然允许随机访问,就好像它是如下所示?

代码语言:javascript
复制
RandomAccessFile ra = new RandomAccessFile("RandomIndeed","rw");
    FileChannel fc1 = ra.getChannel();

fc1和下面的实例fc有什么区别?

代码语言:javascript
复制
FileChannel fc = FileChannel.open(path);

基本上,我想知道上面创建的两个对象之间的区别是什么,因此fc1fc

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-05-09 15:46:49

FileChannel实例获得的RandomAccessFile实例带有它所创建的对象的随机访问行为,在本例中,fc1ra对象同步。您可以看到它是用javadoc描述的。

更改通道的位置,无论是显式的,还是通过读取或写入字节,都将改变原始对象的文件位置,反之亦然。通过文件通道更改文件的长度将改变通过原始对象看到的长度,反之亦然。通过写入字节来更改文件的内容将改变原始对象所看到的内容,反之亦然。

但是,使用FileChannel创建的FileChannel.open()实例(即fc )没有这种行为。对于从流中获得的FileChannel实例来说,这是正确的。它只保证文件的视图在由同一个程序创建的对象之间是一致的。希望这能帮到你。

票数 2
EN

Stack Overflow用户

发布于 2022-12-02 04:12:23

我认为答案取决于jdk的版本。

在jdk7之前,它们在randomAccess函数上是不同的

但在jdk7(包括)之后,它们是相同的;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16465088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档