博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java Nio
阅读量:4150 次
发布时间:2019-05-25

本文共 549 字,大约阅读时间需要 1 分钟。

java io和java NIO

java IO主要是用于读取文件信息,属于阻塞的读取形式,从jdk诞生就一直存在的,其核心主要是流,在java流中最主要的设计模式是装饰模式(todo)

java NIO是jdk 1.4之后出现的,是非阻塞的文件读取形式,其核心内容主要有

selector,

channel,

三者之间关系 一个selector对应多个channel,一个channel一定会有一个buffer与其对应,

selector类似于一个线程,该线程根据不同的事件类型在不同channel之间进行切换,而每个channel在读取文件信息时,都需要从buffer中获取内容

channel可以理解成是io当中的流,源源不断的从buffer中读取数据,但是与流不同的是,流是单向操作,也就是一个流只能是输入流,或者输出流,不可能既是输入流又是输出流,channel管道是双向的,既可以读也可以写,当然主要是借助于buffer来实现

buffer的底层实现是数组,主要是暂存数据,可以将文件内容以字节的形式写入到buffer中,使用flip(反转)之后,再将数据读取出来,是一个双向操作

io可以转化为nio

inputStream,可以获取到channel对象,然后使用buffer进行读取

转载地址:http://ravti.baihongyu.com/

你可能感兴趣的文章
经典好文!想找工作的你还不看这份资料就晚了!快来收藏!
查看>>
经验分享:掌握这套精编Android高级面试题解析,跳槽薪资翻倍
查看>>
美团安卓面试,程序员如何自我学习和成长?先收藏了
查看>>
老师讲的真棒!你的技术真的到天花板了吗?不吃透都对不起自己
查看>>
腾讯T2亲自讲解!你有过迷茫吗?系列篇
查看>>
腾讯T2大牛亲自讲解!6年老Android面经总结,面试真题解析
查看>>
BTAJ面试有关散列(哈希)表的面试题详解,成功入职腾讯
查看>>
Context都没弄明白凭什么拿高薪?附小技巧
查看>>
databinding双向绑定,带你玩转自定义view系列,先收藏了
查看>>
flutter开发工具,一篇文章教你搞定计算机网络面试,吐血整理
查看>>
flutter开发桌面应用,如何才能通过一线互联网公司面试?已开源
查看>>
flutter技术入门与实战!妈妈再也不用担心我的面试,隔壁都馋哭了
查看>>
Flutter最新开源框架,已拿到offer
查看>>
flutter音视频开发,小程序FMP优化实录,已拿offer入职
查看>>
Github标星25K+超火的Android实战项目,Android篇
查看>>
Github标星25K+超火的Android实战项目,帮你突破瓶颈
查看>>
retrofit教程,HTTPS面试常问全解析,真香
查看>>
retrofit源码,Android开发者出路在哪?通用流行框架大全
查看>>
rrxjava原理,Android社招最全面试题,全网疯传
查看>>
vue双向绑定原理,骚年你的屏幕适配方式该升级了,已整理成文档
查看>>