java channel 读写文件_Java 使用newByteChannel(Channel IO)读写文件方法及示例代码

本文介绍了Java中通过newByteChannel进行文件读写的方法,包括ByteChannel和SeekableByteChannel的概念,以及如何使用newByteChannel进行读取和写入文件的示例代码。示例代码展示了如何读取文件内容并输出,以及如何创建或追加日志文件并设置权限。
摘要由CSDN通过智能技术生成

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);

//为这个平台读取正确编码的字节。如果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值