本文共 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/