# 课程：基本 I / O.

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

本课程介绍用于基本 I / O 的 Java 平台类。它首先关注 _I / O 流 _，这是一个强大的概念，可以大大简化 I / O 操作。本课程还介绍了序列化，它允许程序将整个对象写入流并再次读回。然后，本课将介绍文件 I / O 和文件系统操作，包括随机访问文件。

`I/O Streams`部分涵盖的大多数类都在`java.io`包中。 `File I/O`部分涵盖的大多数类都在`java.nio.file`包中。

## [I / O 流](streams.html)

*   [Byte Streams](bytestreams.html) 处理原始二进制数据的 I / O.
*   [Character Streams](charstreams.html) 处理字符数据的 I / O，自动处理与本地字符集的转换。
*   [Buffered Streams](buffers.html) 通过减少对本机 API 的调用次数来优化输入和输出。
*   [扫描和格式化](scanfor.html)允许程序读取和写入格式化文本。
*   [命令行的 I / O](cl.html) 描述了标准流和控制台对象。
*   [数据流](datastreams.html)处理原始数据类型和`String`值的二进制 I / O.
*   [对象流](objectstreams.html)处理对象的二进制 I / O.

## [文件 I / O（以 NIO.2 为特色）](fileio.html)

*   [什么是路径？](path.html) 检查文件系统上路径的概念。
*   [路径类](pathClass.html)引入了`java.nio.file`包的基石类。
*   [路径操作](pathOps.html)查看`Path`类中处理语法操作的方法。
*   [文件操作](fileOps.html)引入了许多文件 I / O 方法的共同概念。
*   [检查文件或目录](check.html)显示如何检查文件的存在及其可访问性级别。
*   [删除文件或目录](delete.html)。
*   [复制文件或目录](copy.html)。
*   [移动文件或目录](move.html)。
*   [管理元数据](fileAttr.html)解释了如何读取和设置文件属性。
*   [读取，写入和创建文件](file.html)显示用于读取和写入文件的流和通道方法。
*   [随机存取文件](rafs.html)显示了如何以非顺序方式读取或写入文件。
*   [创建和读取目录](dirs.html)涵盖了特定于目录的 API，例如如何列出目录的内容。
*   [链接，符号或其他](links.html)涵盖了特定于符号和硬链接的问题。
*   [走文件树](walk.html)演示了如何递归访问文件树中的每个文件和目录。
*   [查找文件](find.html)显示如何使用模式匹配搜索文件。
*   [查看目录以进行更改](notification.html)显示如何使用监视服务来检测在一个或多个目录中添加，删除或更新的文件。
*   [其他有用的方法](misc.html)涵盖了本课程其他部分不适用的重要 API。
*   [传统文件 I / O 代码](legacy.html)显示如果使用`java.io.File`类的旧代码，如何利用`Path`功能。提供了将`java.io.File` API 映射到`java.nio.file` API 的表。

## [摘要](summary.html)

这条线索所涵盖的关键点的小结。

## [问题和练习](QandE/questions.html)

通过尝试这些问题和练习来测试你在这个过程中学到了什么。

## 行动中的 I / O 类

下一步中的许多示例[自定义网络](../../networking/index.html)使用本课程中描述的 I / O 流来读取和写入网络连接。

* * *

**Security consideration:** Some I/O operations are subject to approval by the current security manager. The example programs contained in these lessons are standalone applications, which by default have no security manager. To work in an applet, most of these examples would have to be modified. See [What Applets Can and Cannot Do](../../deployment/applet/security.html) for information about the security restrictions placed on applets.

* * *