RadomAccessFile
并且FileChannel
是完全不同的东西。
RandomAccessFile
早在 NIO 之前就被引入了 java(例如通道)。当您必须在文件的指定位置(非顺序)读取和写入时,对文件进行操作很有用。然而,读和写操作被阻塞,例如,如果你调用 read 方法,它会被阻塞,直到字节被读取。
通道属于所谓的非阻塞 IO,它允许读取(和写入)字节而不被阻塞。RandomAccessFile
和之间的唯一关系FileChannel
是您可以通过随机访问文件访问频道。