主要内容
- Java NIO简介
- Java NIO与IO的主要区别
- 缓冲区(Buffer)和通道(Channel)
- 文件通道(FileChannel)
- NIO的非阻塞式网络通信
选择器(Selector)
SocketChannel、ServerSocketChannel、DatagramChannel - 管道
- Java NIO2(PATH、Paths、Files)
Java NIO简介
Java NIO(New IO Non Blocking IO)是从Java1.4版本开始引入的一个新的IO API,可以替代标砖的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。
Java NIO与IO的主要区别

IO:
流立即为水流,通道理解为水流的管道,单向传输。

NIO
通道理解为铁路,本身不能传说数据,需要数据的载体:缓冲区,缓冲区理解为火车,数据可以双向传递。

通道和缓冲区
Java NIO系统的核心在于:通道(Channel)和缓冲区(Buffer)。通道表示打开到IO设备(例如:文件、套接字)的连接。若需要使用NIO系统,需要获取用于连接IO设备的通道以及用于容纳数据的缓冲区。然后操作缓冲区,对数据进行处理。
简而言之,Channel负责传输,Buffer负责存储
缓冲区(Buffer)
- 缓冲区(Buffer):一个用于特定基本数据类型的容器。由java.nio包定义的,所有缓冲区都是Buffer抽象类的子类。
- Java NIO中的Buffer主要用于与NIO通道进行交互,数据是从通道读入缓冲区,从缓冲区写入通道中的。




通道




阻塞与非阻塞




1220

被折叠的 条评论
为什么被折叠?



