IO和NIO的区别
IO和NIO的区别
IO的作用
IO 的作用就是从外部程序读取数据到java程序中,或者把java中输出的数据回写到外部系统。这里的外部系统可能是磁盘,网络流等。与外部数据进行交互,这就是 IO 的作用>
所有IO的本质都是对缓冲的处理,不管是度还是写,都会把数据放到缓冲~
IO与NIO的区别
首先它们都属于IO,只是处理的方式不同。
java 中, IO 属于 流式IO ,即 Stream/IO 。它只能一个字节一个字节的处理数据。
而 NIO 是以 Block 的方式来读取数据的,以 块 的形式从磁盘上读取数据,所以它能提升 IO 的效率。
Stream/IO 是阻塞的,当线程进行读写操作时,线程会被阻塞,数据只能处理一次,不能回退。而 NIO 是非阻塞的。
IO 中的类:write,reader,inPutStream,outPutStream等
NIO 中,由于是从磁盘读取数据,处理 块 的信息,所以缓冲是一个非常重要的概念,基本上它的大部分类都与缓冲相关。包括基础类型的 buff : ShortBuffer,FloatBuffer,ByteBuffer 等。
管道 也是 NIO 中一个很重要的概念, NIO 通过管道读取数据。