<分区>
考虑到Java 7中的FileChannel实现了接口(interface)SeekableByteChannel。使用 RandomAccessFile 而不是 FileChannel 有什么用吗? 提前致谢。
<分区>
考虑到Java 7中的FileChannel实现了接口(interface)SeekableByteChannel。使用 RandomAccessFile 而不是 FileChannel 有什么用吗? 提前致谢。
最佳答案
RadomAccessFile
和 FileChannel
是完全不同的东西。
RandomAccessFile
早在 NIO(例如 channel )之前就被引入了 java。当您必须在文件的指定位置(而不是顺序)读取和写入时,对文件进行操作很有用。
然而,读写操作被阻塞,例如如果您调用 read 方法,它将被阻塞,直到字节被读取。
channel 属于所谓的非阻塞 IO,允许读取(和写入)字节而不会被阻塞。 RandomAccessFile
和FileChannel
之间的唯一关系是您可以通过随机访问文件访问 channel 。
关于java - FileChannel 与 RandomAccessFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16495754/