Java NIO教程

Java提供了一个叫作NIO(New I/O)的第二个I/O系统,NIO提供了与标准I/O API不同的I/O处理方式。它是Java用来替代传统I/O API(自Java 1.4以来)。

它支持面向缓冲的,基于通道的I/O操作方法。 随着JDK 7的推出,NIO系统得到了扩展,为文件系统功能和文件处理提供了增强的支持。 由于NIO文件类支持的这些新的功能,NIO被广泛应用于文件处理。

NIO为Java程序员实现高速I/O,而不使用自定义本机代码。 NIO将填充,排放缓冲区等的时间性I/O活动移回操作系统,从而大大提高了操作速度。

Java NIO基本组件如下:

  • 通道和缓冲区(Channels and Buffers):在标准I/O API中,使用字符流和字节流。 在NIO中,使用通道和缓冲区。数据总是从缓冲区写入通道,并从通道读取到缓冲区。

  • 选择器(Selectors):Java NIO提供了“选择器”的概念。这是一个可以用于监视多个通道的对象,如数据到达,连接打开等。因此,单线程可以监视多个通道中的数据。

  • 非阻塞I/O(Non-blocking I/O):Java NIO提供非阻塞I/O的功能。这里应用程序立即返回任何可用的数据,应用程序应该具有池化机制,以查明是否有更多数据准备就绪。

下面来看看非阻塞I/O的应用和操作系统接口:

读者

本教程是专为Java NIO初学者而准备的,通过简单的步骤帮助他们来了解和学习Java NIO基础知识。 完成本教程的学习后,您将发现自己在Java NIO编程方面具有一定的专业知识水平,进而能更容易地学习Java NIO编程中更深层次的技术和知识。

前提条件

Java NIO编程类基于Java编程,所以如果你知道或熟悉Java语法,那么将很容易学习Java NIO。 此外,如果您没有Java专业知识,但如果您有其它任何其他编程语言(如C语言,C++或Python)的基础,那么也将有助于快速掌握Java NIO编程技术。

问题反馈

我们不能保证您在学习此Java NIO教程的过程中不会遇到任何问题。本教程中的讲解,示例和代码等只是根据作者的理解来概括写出。由于作者水平和能力有限,因此不保正所有编写的文章都准确无误。但是如果有遇到任何错误或问题,请反馈给我们,我们会及时纠正以方便后续读者阅读。


开始学习 >> :Java NIO组件