jvm源码分析之FileChannel的read/write()方法

BtyeChannel

BtyeChannel接口提供对通道进行字节读、写的抽象方法。实际上什么都不做,只是继承了ReadableBtyeChannel接口和WriteableByteChannel。

 

SeekableByteChannel

SeekableByteChannel接口继承了ByteChannel,但它还提供了position()、size()等方法。

一个SeekableByteChannel可以说是保留了通道的当前position,并且该position被改变的字节通道。

SeekableByteChannel会被连接到某个实体,通常是一个文件,这个实体 包含了可变长度的可被读或者写的字节序列。

通道的当前position可以通过position()方法被查询,也可以通过position(long)方法被修改。SeekableByteChannel也提供了对所连接实体的当前size大小的操作方法。当字节写入超过了它的当前size大小时,size会增加;当调用truncate()方法截断时,size会减少。

SeekableByteChannel继承的read()方法和write()抽象方法,在未来使用上也和BtyeChannel的有所不同。

read():从通道读取字节序列到给定buffer中。字节从通道的当前position开始读取。然后用实际读取的字节数更新position。

否则,该方法的行为与ReadableBtyeChannel接口的read()相同。

write():从给定buffer写入字节序列到通道中。字节从通道的当前position开始写入,除非通道连接到一个文件,并且该文件时通过追加模式打开的,这样的话position首先移动到文件的末尾。 否则,此方法的行为完全按照WritableByteChannel接口。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值