欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

NIO初步了解

程序员文章站 2022-07-13 17:02:18
...

java中NIO是在java1.4之后出现的java的api中,它可以代替IO;

java中有两套NIO:其中一套是标准的NIO,另一套是网络NIO;标准的NIO的核心对象是通道Channel与缓冲Buffer,网络NIO中的核心对象比标准的多了一个选择器Selector;

NIO与IO的区别:

1.IO是基于字节流和字符流的操作;而NIO是基于通道Channel和缓冲Buffer的操作,数据总是从通道读到缓冲,或者由缓冲写入通道中.

2. IO是以流的方式处理数据,而NIO是以块的方式处理数据;面向流的处理一次输入流产生一个字节,一次输出流消耗一个字节,为流式数据创建过滤器比较容易;面向块的处理一次产生或者消耗一个块,按块操作比按流操作快;

3.IO流是单向的,他只能从输入流到输出流;NIO是双向的,他总是从Channel读到Buffer,或者缓冲Buffer写到通道,即Channel是通过Buffer来读写数据的.

4.Java NIO可以让你非阻塞的使用IO,例如:当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情。当数据被写入到缓冲区时,线程可以继续处理它。从缓冲区写入通道也类似.

 

Channel是对原IO中的流的模拟,任何来源和目的的数据都必须通过一个Channel对象,一个Buffer实质上是一个容器对象,发给Channel的所有对象都必须先存放到BUffer中;同样,从Channel中读取数据都要读到buffer中

 

 

NIO的具体使用将在后面的博文中介绍

相关标签: NIO