# 文件 I / O（以 NIO.2 为特色）

> 原文： [https://docs.oracle.com/javase/tutorial/essential/io/fileio.html](https://docs.oracle.com/javase/tutorial/essential/io/fileio.html)

* * *

**注意：**本教程反映了 JDK 7 发行版中引入的文件 I / O 机制。文件 I / O 教程的 Java SE 6 版本很简短，但您可以下载包含早期文件 I / O 内容的教程的 [Java SE 教程 2008-03-14](http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-tutorials-419421.html#tutorial-2008_03_14-oth-JPR) 版本。

* * *

`java.nio.file`软件包及其相关软件包`java.nio.file.attribute`为文件 I / O 和访问默认文件系统提供全面支持。虽然 API 有很多类，但您只需要关注几个入口点。您将看到此 API 非常直观且易于使用。

教程首先询问[什么是路径？](path.html) 然后，引入 [Path 类](pathClass.html)，它是包的主要入口点。解释了与[句法操作](pathOps.html)相关的`Path`类中的方法。然后，本教程将继续执行包中的另一个主类，即`Files`类，其中包含处理文件操作的方法。首先，介绍了许多[文件操作](fileOps.html)常见的一些概念。然后教程介绍[检查](check.html)，[删除](delete.html)，[复制](copy.html)和[移动](move.html)文件的方法。

教程显示了如何管理[元数据](fileAttr.html)，然后再转到[文件 I / O](file.html) 和[目录 I / O](dirs.html) 。 [解释了随机存取文件](rafs.html)，并检查了[符号和硬链接](links.html)特有的问题。

接下来，介绍一些非常强大但更高级的主题。首先，演示了[递归遍历文件树](walk.html)的能力，然后是关于如何[使用通配符](find.html)搜索文件的信息。接下来，解释和演示如何[观看目录以进行更改](notification.html)。然后，[方法不适合其他地方](misc.html)给予一些关注。

最后，如果您在 Java SE 7 发行版之前编写了文件 I / O 代码，则会有从旧 API 到新 API 的[映射，以及有关`File.toPath`方法的重要信息。希望](legacy.html#mapping)[利用新 API 而无需重写现有代码的开发人员](legacy.html#interop)。