NIO的概述
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NIO的概述相关的知识,希望对你有一定的参考价值。
参考技术A java.nio全称java non-blocking IO,是指JDK提供的新API。从JDK1.4开始,java提供了一系列改进的输入/输出的新特性,被统称为NIO。新增了许多用于处理输入输出的类,这些类都被放在Java.nio包及子包下,并且对原java.io包中的许多类进行了改写,新增了满足NIO的功能。NIO和BIO有着相同的作用和目的,但他们的实现方式完全不同,BIO以流的方式处理数据,而NIO以块的方式处理数据,块I/O的效率比流I/O高出很多,另外,NIO是非阻塞式的,这一点与BIO也很不相同,使用它可以提供非阻塞式的高伸缩性网络。
NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区),Selector(选择器)。传统的BIO基于字节流和字符流进行操作,而NIO基于Channel(通道)和Buffer(缓冲区)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Selector(选择区)用于监听多个通道的事件(比如:连接请求,数据到达等),因此使用单个线程就可以监听多个客户端通道。
1.NIO概述
/*Java NIO 简介*/
java NIO (New IO)是从 java1.4版本开始引入的一个新的IO API,可以替代标准的 java IO API (jdk1.7又对其进行了改进, 称为NIO2)
NIO 与 原来的 IO 有相同的作用和目的,但是使用的方式完全不同,NIO支持面向 /*缓冲区*/的。基于 /*通道*/的 IO 的操作
NIO 将以更加高效的方式进行文件的读写操作
/*Java NIO 与 IO 的 主要区别*/
/*通道 和 缓冲区 */
Java NIO 系统的 核心在于:通道(Channel)和 缓冲区(Buffer)
通道表示打开到IO 的设备 (例如:文件,套接字)的连接
若需要使用 NIO ,需要获取用于连接IO设备的通道以及用于容纳数据的缓冲区(Buffer),对数据进行处理
另外:通道(Channel) 是可以 完成 程序 和 磁盘的 双向通信的
/*原先的 io 是通过 输入还是输出流区分的*/
简而言之, Channel 负责传输,Buffer负责存储
以上是关于NIO的概述的主要内容,如果未能解决你的问题,请参考以下文章