java nio基本概念

参考:http://blog.csdn.net/jiangwei0910410003/article/details/21104867

一。1.4以前面向流的io,nio面向块io。

核心对象:通道,缓冲区,选择器

nio中所有数据都是在缓冲区处理的。

抽象类buffer。

通道:实现channel接口

读数据分为以下三步:从fileinputStream获取channel,创建buffer,将数据从channel读取到buffer中。

写入数据:从fileinputStream获取channel,创建buffer,将数据从channel中写入到buffer中


二。缓冲区对象本质是一个数组。能够跟踪和记录缓冲区的变化情况。

position:下一个将要被写入或读取的元素索引

limit:需要多少数据需要读取和写入

capacity:存储在缓冲区中的最大数据容量

flip方法:设置limit,position为0

clear方法:所有状态复位

三。缓冲区分配

allocation包装为缓冲区对象

现有缓冲区对象创建子缓冲区。子缓冲区和现有缓冲区数据共享。相当于一个视图窗口。

调用slice方法可以创建一个子缓冲区

只读缓冲区:调用缓冲区的asReadonlyBuffer,将常规缓冲区转换为只读缓冲区。与原缓冲区共享数据。原缓冲区发生变化,只读缓冲区也变化

直接缓冲区:调用allocatedirect,调用底层操作系统io,避免中间缓冲区。

内存映射文件io:是文件的数据为内存数组,不是全映射,而是实际读取或写入才会映射。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值