这是我遇到文件频道的时候。我在通道上锁定以锁定进程以避免其他进程使用它。
在线阅读时,我知道Channel就像是一个通过I / O操作访问文件的端点,但它总是从缓冲区读写。
这是我遇到的一个例子
String filePath = "readfile.txt";
printFileContents(filePath);
Path path = Paths.get(filePath);
FileChannel fileChannel = FileChannel.open(path);
ByteBuffer buffer = ByteBuffer.allocate(6);
int noOfBytesRead = fileChannel.read(buffer);
在第5行,缓冲区正在创建限制6.但我在最后一步感到困惑。缓冲区只是空的但是限制为6,filechannel应该从缓冲区中读取但是它在这里发生了吗?filechannel是否在缓冲区中放置了6个内容的第一个限制而不是从那里读取它?
任何人都可以帮助我理解它,它是如何工作的?那么使用Filechannels的实际目的是什么?