Java NIO——NIO与IO的区别

1.Java NIO简介:

Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓存区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。

2Java NIO与IO的主要区别:

为什么说原来的IO是面向流呢?因为无论是磁盘文件还是网络文件,在与程序的交互过程中都可以简单的理解为是以字节流的形式传输的。而且原来的IO流在输出或者输出时候都需要建立管道,也就是输出流管道或者输入流管道,所以,原始的IO流是单向的。

那再来看NIO。同样是传输数据,所以它也需要建立连接,但是它所建立的不叫流,叫做通道。这里的通道可以理解为铁路,顾名思义,铁路本身是不可能完成传输数据的任务的,也就是说,这个时候还需要一个载体——缓冲区,也就是铁路上的火车。缓冲区在这里作为数据的载体,可以在数据传输的两端进行来回的传输,也就是说明NIO具有双向传输的功能。比较官方的说法就是通道表示打开到IO设备(例如文件、套接字)的连接。若需要使用NIO系统,需要获取用于连接IO设备的通道以及用于容纳数据的缓冲区。然后操作缓冲区,对数据进行处理。

简而言之,Channel负责传输,Buffer负责存储

猜你喜欢

转载自blog.csdn.net/qq_38386085/article/details/81487860