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