1、ByteChannel、SeekableByteChannel和newByteChannel
ByteChannel接口提供了基本的read和write功能性。A SeekableByteChannel是ByteChannel具有维持频道中位置并更改该位置的能力。A SeekableByteChannel还支持截断与通道关联的文件并查询文件的大小。
能够移动到文件中的不同点,然后从该位置读取或写入该位置的功能使对文件的随机访问成为可能。有关更多信息,请参见 随机访问文件。
有两种读取和写入通道I / O的方法。
注: 该newByteChannel方法返回的一个实例SeekableByteChannel。使用默认文件系统,您可以将此可搜索的字节通道转换为 FileChannel提供对更高级功能的访问,例如将文件的区域直接映射到内存中以加快访问速度,锁定文件的区域以便其他进程无法访问它或读取从绝对位置写入字节,而不会影响通道的当前位置。
这两种newByteChannel方法都可以指定OpenOption选项列表。除了一个选项之外,newOutputStream还支持该方法使用的相同OpenOption:READ由于SeekableByteChannel支持读和写,因此是必需的:
指定READ将打开阅读通道。指定WRITE或APPEND打开用于写入的通道。如果未指定这些选项,则打开通道进行读取。
2、使用newByteChannel读写文件//读取文件
try (SeekableByteChannel sbc = Files.newByteChannel(file)) {
ByteBuffer buf = ByteBuffer.allocate(10);
//为这个平台读取正确编码的字节。如果