NIO (New I/O)
基于块(Block),以块未基本单位处理数据
原始类型提供Buffer支持
增加通道
支持锁和文件映射的文件访问接口
基于Selector的异步网络I/O
ByteBuffer byteBuffer=ByteBuffer.allocate(1024);
FileInputStream in=new FileInputStream("");
FileChannel readChannel=in.getChannel();
readChannel.read(byteBuffer);
Buffer
3个重要参数
位置(position)
//read:从当前位置的下一个位置写数据
//write:从此位置狗读取数据
容量(capactiy) //总容量上线
上限(limit)//代表实际使用容量
方法:
Buffer rewid() // postion清零,清除标志位mark
Buffer clear() // postion清零 ,limit设为capactiy,清除标志位mark
Buffer flip() //将limit设置到position的位置,然后postion清零,清除标志位,用于读写转换
文件映射到内存
RandomAccessFile fas=new RandomAccessFile("","rw");
readChannel= fas.getChannel();
MappedByteBuffer mbb= readChannel.map(FileChannel.MapMode.READ_WRITE,0,fas.length());
//RandomAccessFile随机访问文件(“随心所欲”地访问一个文件的某个部分)
Selector选择器
https://www.cnblogs.com/snailclimb/p/9086334.html
AIO
使用回调函数进行业务处理