20
Java NIO 简明教程 之 Java NIO 异步文件通道(AsynchronousFileChannel)
在 Java 7 中,Java NIO 新增了 AsynchronousFileChannel
类。AsynchronousFileChannel
类使得数据可以进行异步读写。本文将介绍 AsynchronousFileChannel
的使用。
在 Java 7 中,Java NIO 新增了 AsynchronousFileChannel
类。AsynchronousFileChannel
类使得数据可以进行异步读写。本文将介绍 AsynchronousFileChannel
的使用。
Java NIO 中的 Files 类(java.nio.file.Files)提供了多种在文件系统中操作文件的方法。本节教程将覆盖最常用的方法。Files 类包含了许多方法,所以如果本文没有提到的你也可以直接查询 JavaDoc 文档。
Java Path 接口作为 Java NIO 2 更新的一部分,Java NIO 在 Java 6 和 Java 7 中接收了这一更新。Java Path 接口被添加到了 Java 7 的 Java NIO 中,Path 接口位于 java.nio.file 包下,因此 Java Path 接口的完整名称是 java.nio.file.Path。
在学习 Java NIO 和 IO API 时,很快你就会问自己:什么时候该用 IO,什么时候使用 NIO?
在本文中,将试图阐明 Java NIO 和 IO 之间的区别、它们的用例以及它们如何影响代码的设计。
Java NIO 的管道是 2 个线程间的单向数据传输。一个管道(Pipe)有一个 source channel 和一个 sink channel。我们把数据写入 sink channel 中,从 source channel 读取。
Java NIO 中的 DatagramChannel 是一个可以发送、接收 UDP 数据包的通道。由于 UDP 是面向无连接的网络协议,所以不能像使用其他通道那样直接进行读写数据。正确的做法是发送、接收数据包。
现在你已经知道了 Java NIO 里面那些非阻塞特性是怎么工作的,但是要设计一个非阻塞的服务仍旧比较困难。非阻塞 IO 相对传统的阻塞 IO 给开发者带来了更多的挑战。在本节非阻塞服务的讲解中,我们一起来讨论这些会面临的主要挑战,同时也会给出一些潜在的解决方案。
在 Java NIO 中的 ServerSocketChannel 是用于监听新连接的 TCP 通道, 就像标准 IO 中的 ServerSocket 一样。ServerSocketChannel 类在 java.nio.channels包中。