21
Java NIO 简明教程
最近在整理 Java NIO 相关的资料,发现了 Jakob Jenkov 2014年写的 Java NIO Tutorial 教程,概念讲的非常透彻、浅显易懂,值得作为 Java NIO 学习的推荐材料。
最近在整理 Java NIO 相关的资料,发现了 Jakob Jenkov 2014年写的 Java NIO Tutorial 教程,概念讲的非常透彻、浅显易懂,值得作为 Java NIO 学习的推荐材料。
在 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 给开发者带来了更多的挑战。在本节非阻塞服务的讲解中,我们一起来讨论这些会面临的主要挑战,同时也会给出一些潜在的解决方案。