NIO的buffer的理解

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

猜你喜欢

转载自blog.csdn.net/stonennnn/article/details/82783776