Java NIO(1) 基本组件简介,javanio
分享于 点击 43082 次 点评:243
Java NIO(1) 基本组件简介,javanio
Java NIO
1. Java NIO 基本组件介绍
2. Java NIO 核心组件:Buffer 缓冲器
3. Java NIO 核心组件:Channel 通道
4. Java NIO 核心组件:Selector 选择器,Pipe 管道
Java NIO 简介
Java 除了提供标准 I/O 系统之外,在 Java 1.4 开始提供了 NIO 系统用于提供基于缓存的、非阻塞的、高速 I/O 操作,提供 NIO 系统的目的在于提高 I/O 操作的速度,使用更加类似于操作系统执行 I/O 的方式,即使用了通道和缓冲器;
NIO 和 标准 IO 的区别 标准IO
- 基于阻塞的 I/O 操作:在等待数据写入或写入都会引起阻塞,即当线程调用 write(), read() 时,线程会被阻塞,直到数据被完全读取或写入;
- 面向流:使用流来传输数据,这种方式的 I/O 操作速度比较慢;
- 基于非阻塞的 I/O 操作:不等待数据的读取或写入,允许调用线程请求向通道写入数据,而不等待数据被完全写入;
- 面向缓存:使用通道(channel)和缓冲区(buffer)来传输数据,数据被读取入缓冲区,使用通道进一步进行处理;
Java NIO 系统的核心组件 Java NIO 系统的核心组件包括以下
- 通道和缓冲区(Channel and Buffer):NIO 使用通道和缓冲区传输数据,数据总是从缓冲区写入通道,并从通道读取到缓冲区;
- 选择器(Selectors):NIO 的选择器用于监视多个通道的状态(如数据到达,连接打开等),通过选择器,单线程可以监视多个通道中的数据;
- FileChannel:用于文件 I/O
- SocketChannel ,ServerChannel:用于 TCP I/O
- DatagramChannel:用于 UDP I/O
NIO 核心 Buffer
- CharBuffer
- DoubleBuffer
- IntBuffer
- LongBuffer
- ByteBuffer
- ShortBuffer
- FloatBuffer
java.nio 包基本结构
java.nio 提供了对于 NIO 系统支持的类库,该包的主要结构如下:
java.nio |
NIO系统的顶级包,NIO系统封装了各种类型的缓冲区; |
java.nio.charset |
封装了字符集,并且还支持分别将字符转换为字节和字节到编码器和解码器的操作; |
java.nio.charset.spi |
用于提供字符集服务; |
java.nio.channels |
用于支持通道,这些通道本质上是打开I/O连接; |
java.nio.channels.spi |
用于支持频道服务; |
java.nio.file |
用于提供对文件的支持; |
java.nio.file.spi |
用于提供支持文件系统的辅助服务; |
java.nio.file.attribute |
用于对文件属性提供的支持 |
相关文章
- 暂无相关文章
用户点评