NIO的buffer的理解

本文深入解析NIO中Buffer的使用方式,包括其核心概念capacity、position与limit,以及关键方法如flip()与clear()的实现原理。通过示例说明Buffer在文件读写过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NIO对文件得读写过程:

创建一个Buffer,先把文件写入到buffer中,再由buffer写入目标文件可见buffer有着重要作用。
关键字
    buffer核心是一个固定长度的数组,主要有3个概念:capaticy,position,limit
    position:类似于指针,表示当前指向的位置
    capaticy:数组的最大长度
    limit:代表最大能写入(读)的数据
示意图


    当数组中只有4个元素时,limit=4表示最多能读4个数据,limit=capaticy代表最多能写capaticy-4个数据

常用的方法
    buffer.flip();--将写模式变为读模式。源码如下
 

    public  final Buffer flip(){
        //将写模式下的最后位置设为limit位置
        limit=position;
        //指针指向第一个元素,读模式下从头开始读
        position= 0;
        mark=-1;
        return this;
    }

    buffer.clear();--用于写模式,清空buffer
 

    public final Buffer clear(){
        //指针指向第一个元素
        position = 0;
        //将limit设为最大值
        limit = capaticy;
        mark=-1;
        retur  this;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值