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的具体使用将在后面的博文中介绍
上一篇: JAVA BIO与NIO的对比
下一篇: jdbc操作大观园