Java NIO简介
Java nio (new io) 是从java 1.4 版本开始引入有的一个新的IO API 可以替代标准的java io API.
NIO 和原来的io有同样的作用和目的,但是使用方式完全不通,NIO支持面向缓存区的基于通道的IO操作,NIO将以更加高效的方式进行文件的读写操作。
Java.nio中拥有3个概念 selector channel 和 buffer 在java.nio中我们是面向块(blocl)或是缓冲区(buffer)编程的 buffer本事就是一个堆存区域地址是线上他就是一个数组,数据的读和写都是通过buffer来实现的
除了数组之外,buffer还提供了对于数据的结构化访问方式,并且可以追踪到系统的读写过程
java中的8种原生数据类型都有各自对应的buffer类型 如intbuffer longbuffer bytebuffer charbuffer boolean除外
Channel 指的是可以向其写入数据或是从中读取数据对象,它类似于 java中的stream
所有数据的读写都是通过buffer来进行的,永远不过出现直接向channel写入数据的情况,或是直接从channel读取数据的情况
与stream不同的是 channel是双向的 一个流只可能是inputstream 或是outputstream,channel打开后可以进行读取写入或是读写
由于channel是双向的因此他能更好的放映出操作系统的真实情况,在linux系统中底层操作系统的通道就是双向的
java io 和 nio的区别
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 纯粹博客!