KnowledgeCity

高级 Java:输入/输出

在这些课程中,您将了解如何读取和写入文件系统。遗留文件API用于许多遗留项目、框架和库。尽管它的年代久远,但遗留API并未被弃用,您仍然可以将它与任何最新的Java版本一起使用。

在这些课程中,您将了解如何读取和写入文件系统。遗留文件API用于许多遗留项目、框架和库。尽管它的年代久远,但遗留API并未被弃用,您仍然可以将它与任何最新的Java版本一起使用。

您将了解java.nio.file.Path如何完成java.io.File所能做的一切,并且通常以更好的方式,新类能够支持符号链接、正确的文档属性、元数据、ACL 等。在处理文件或路径时,您可能会使用java.nio.file.Files类,我们将介绍许多对文件和目录进行操作的常用函数。输入和输出包含大量来源,我们自然需要处理字符和字节文件内容。NIO库中塞满了我们可能面临的任何I/O要求所需的一切。

学习目标:

  • 描述新的NIO库
  • 了解如何读取和写入文件系统
  • 解释如何创建临时文件

作者: Scott Stanlick

时长: 9m · 3 课时
级别: Advanced
语言: 简体中文

你将掌握的技能

文件I/OI/O处理器Java 11Java高级成像Java API非阻塞I/O(Java)

您将学到的内容

  • 描述 Java NIO 库及其文件处理功能
  • 使用 Java I/O 对文件系统进行读写操作
  • 使用 java.nio.file.Path 替代旧版 java.io.File API
  • 使用 java.nio.file.Files 类执行常见的文件和目录操作
  • 处理文件元数据、属性、ACL 及符号链接
  • 使用 NIO 库创建临时文件

关键要点

  • 旧版 java.io.File API 并未被弃用,仍可与最新 Java 版本配合使用。
  • java.nio.file.Path 能完成 java.io.File 的所有功能,且通常表现更优,支持符号链接、文件属性、元数据和 ACL。
  • java.nio.file.Files 类提供了许多用于操作文件和目录的常用功能。
  • 输入与输出涵盖广泛的来源,需要同时处理字符和字节形式的文件内容。
  • 本课程涵盖文件的读取、写入以及文件元数据的使用。

常见问题

本课程涵盖哪些内容?

本课程介绍如何在 Java 中对文件系统进行读写操作,包括 NIO 库、java.nio.file.Path 和 java.nio.file.Files 类、文件元数据以及临时文件的创建。课程章节包括读取、写入和文件元数据。

本课程讲授的是旧版文件 API 还是较新的 NIO 库?

两者均有涉及。课程介绍了旧版文件 API(该 API 仍可使用且未被弃用),同时展示了 java.nio.file.Path 和 NIO 库如何以更优的方式完成相同工作,并支持符号链接、文件属性、元数据和 ACL。

学完本课程后我将掌握哪些技能?

您将掌握文件 I/O、I/O 处理、Java 11、Java 高级成像、Java API 以及 Java 非阻塞 I/O 等方面的技能。

本课程的学习目标是什么?

学习目标包括:描述新的 NIO 库、理解如何对文件系统进行读写操作,以及掌握如何创建临时文件。

字幕文稿

字幕文稿

嘿,欢迎回来。 斯科特斯坦利克在这里。 在这些课程中,我们将看看 在文件输入/输出。 我们将看到如何读取文件, 写入文件,获取有关文件的元数据。 所以我想开始我刚才的话 在Java中,你有能力 读写字节流, 这是八位字符 或字符流, 这是 Unicode 16 位字符, 并且内置桥接 在字节流之间转换 和字符流或字符流到字节流。 而且有很多很多不同的方式 您可以阅读其中的内容。 但是对于数据打印流、管道、通道, 字节数组、字符串缓冲区、对象输入流、 清单很长。 可能一切皆有可能 你需要做的 关于读取或写入文件,I/O。 所以我们首先要看的 正在使用这个新的 I/O 库读取一个小文件, 我们有一个文件,这恰好是一个 Java 文件 我们将要阅读的内容。 我们要使用 Files 类,readAllLines 方法, 传递它的路径 并给它字符集, 这是UTF-8。 所以如果我们运行第一个测试, 我得到一个流,我要为每一行说 在流中或对于流中的每个元素, 打印出来。 所以我们可以看到这里,果然, 看起来像文件 FileReadWriteFun, 所以这是我们正在阅读的文件。 下一个向我们展示了一种技术 我们可以用来不读取所有行 因为如果你有一个怪物档案, 像巨大的,非常大的文件, 您可能没有足够的内存来阅读所有行。 所以 Files 类还有另一种行为 所谓的 Lines 实际上会做到这一点。 你流媒体,当你阅读这里的台词时, 一次只有文件的一部分加载到内存中。 所以它的内存效率更高。 您将完成与我们将在此处看到的相同的事情。 我仍然要阅读整个文件。 但是你分块读 而不是将整个文件读入内存。 所以相同的输出,相同的内容,相同的结果。 这只是一种更节省内存的方式 读取文件的片段 而不是整个事情。 我们要看的最后一本书 是数据输入流 我们可以控制每个字节 我们读到的 而不是阅读行或所有行。 那么,这里使用的方法 我们要找出多少字节 鉴于该路径,在阅读器上可用。 我们要在这里创建一个字节数组 并将所有字节读入该字节数组。 然后打印内容 字节数组输出为字符串。 让我们看看。 这应该会产生相同的输出。 它确实如此。 所以我感谢你的观看。 非常感谢你。

随时随地学习

随时随地学习——使用 KnowledgeCity 应用,您可以在移动中观看课程。