CodeGym
促销
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 权限与对文件系统的访问

    JAVA 25 SELF
    等级 38,课时 3
    在本讲中,我们将讲解操作系统如何管理访问权限(POSIX 以及 ACL 于 Windows 上)、为什么在 Java 中会出现异常 AccessDeniedException、如何以及何时使用 Files.isReadable()、 Files.isWritable()、 Files.isExecutable() 进行检查,以及 TOCTOU 的风险。展示“安全写入”模式:临时文件 + 通过 StandardCopyOption.ATOMIC_MOVE 进行原子移动,配合 try- catch 的正确错误处理与日志记录( java.util.logging)。最后给出实践建议与常见错误。
    可用
  • 文件操作最佳实践

    JAVA 25 SELF
    等级 38,课时 4
    在 Java 中与文件系统进行可靠且安全的工作的实用指南:正确处理异常( try/ catch,对 IOException、 AccessDeniedException 等分别处理)、谨慎使用 Files/ Path API 和备份( Files.copy 搭配 StandardCopyOption.REPLACE_EXISTING)、临时文件( Files.createTempFile)、完整性校验( MessageDigest.getInstance( "SHA-256")),以及尽量缩小 TOCTOU 窗口并广泛使用 try-with-resources。你将了解为什么空的 catch 很危险、如何处理访问权限( File.canRead()/ File.canWrite()),以及像 File( "data.txt") 这样的相对路径会带来什么风险。
    可用
  • NIO2: Files, Paths, Files.walk:遍历文件系统

    JAVA 25 SELF
    等级 39,课时 0
    对文件 API NIO2 的深入解析:通过 Path 处理路径与 Files 工具类,使用 Files.walk 和 FileVisitor 接口遍历目录树,过滤与搜索、统计大小与复制,try-with-resources 与 IOException 处理。将其与旧的 File API 对比,并分析使用 Stream<Path> 时的典型错误。
    可用
  • 类 File、Path、Files:获取文件信息

    JAVA 25 SELF
    等级 39,课时 1
    对文件操作 API 的简明实用综述:从老将 File 到 java.nio.file 包中的现代 Path 与 Files。我们将讲解存在性检查、类型(文件/目录)、大小、路径、基础属性与权限。展示何时以及为何应优先选择 Path/ Files,如何正确处理 IOException,以及实践中最常见的错误。
    可用
  • Glob/PathMatcher,DirectoryStream.Filter

    JAVA 25 SELF
    等级 39,课时 2
    NIO2 文件选择实践讲解:对比 glob 与 regex,学习使用 PathMatcher,通过 Files.newDirectoryStream 和 DirectoryStream.Filter<Path> 过滤目录内容,还将用 Files.walk() 做递归遍历、用 Files.find() 与 BiPredicate<Path, BasicFileAttributes> 做条件筛选。我们会讨论模式细节( "**/*.java"、 "*.{png,jpg}")、性能,以及关闭资源时的常见错误。
    可用
  • FileVisitor — 文件系统遍历与递归操作

    JAVA 25 SELF
    等级 39,课时 3
    在本讲中,我们将解析 Java 中的高级文件系统遍历:流式的 Files.walk() 与事件驱动的 API Files.walkFileTree() 有何区别, FileVisitor<T> 契约如何工作以及便捷的适配器 SimpleFileVisitor<T>, FileVisitResult 返回哪些决策( CONTINUE、 SKIP_SUBTREE、 SKIP_SIBLINGS、 TERMINATE),如何正确执行递归删除、大小统计、按模式搜索与错误处理,以及实践中常见的典型错误。
    可用
  • 获取与修改文件属性

    JAVA 25 SELF
    等级 39,课时 4
    通过 API java.nio.file.attribute 处理文件元数据的实用指南:使用 Files.readAttributes 和 BasicFileAttributes 读取基础属性,借助 PosixFileAttributes 和 DosFileAttributes 了解扩展的 POSIX/ DOS 属性;修改时间与权限( FileTime、 PosixFilePermissions、 Files.setLastModifiedTime、 Files.setAttribute)。另外还有访问检查( Files.isReadable/ isWritable/ isExecutable)、跨平台差异( dos:* vs posix:*)以及常见错误。
    可用
  • 创建与删除文件和目录

    JAVA 25 SELF
    等级 40,课时 0
    Java 文件 API 的实践入门:使用 java.nio.file,通过 Files.createFile、 Files.createDirectory 和 Files.createDirectories 创建文件和目录,删除——使用 Files.delete 和 Files.deleteIfExists。我们将讨论存在性检查( Files.exists、 Path.of)、典型异常( FileAlreadyExistsException、 NoSuchFileException、 DirectoryNotEmptyException、 IOException)以及安全删除,包括对非空目录的递归删除。
    可用
  • 复制与移动文件和文件夹

    JAVA 25 SELF
    等级 40,课时 1
    如何使用 Files.copy 和 Files.move(来自 java.nio.file 包)来复制、移动与重命名文件和文件夹;应使用哪些选项( StandardCopyOption.REPLACE_EXISTING、 COPY_ATTRIBUTES、原子移动), copy 与 move 有何区别,以及如何正确处理异常: FileAlreadyExistsException、 AccessDeniedException、 AtomicMoveNotSupportedException、 NoSuchFileException。另外还有实用建议与各主要方法和选项的表格。
    可用
  • 批量文件操作

    JAVA 25 SELF
    等级 40,课时 2
    通过 NIO.2 的文件实践:如何用 Files.list 和 Files.walk 遍历目录,使用 Stream<Path> 及其 filter、 sorted、 limit 操作过滤路径流。批量操作:复制( Files.copy)、删除( Files.delete)、重命名( Files.move),在循环中安全地处理错误,并在递归遍历时考虑性能。包含主要方法的表格以及“典型错误”一节将帮助你避开坑点。
    可用
  • 处理临时文件和目录

    JAVA 25 SELF
    等级 40,课时 3
    本讲将讲解如何安全地创建和清理临时资源:通过 Files.createTempFile 创建临时文件、通过 Files.createTempDirectory 创建临时目录,它们默认会存放到哪里,以及如何指定自定义目录。我们将演示如何使用 Files.delete/ Files.deleteIfExists 进行可靠删除、何时适合使用遗留方法 File.deleteOnExit()、如何通过 System.getProperty( "java.io.tmpdir") 获取系统临时目录路径,以及为什么使用 try- finally 结构以确保清理非常重要。最后——实用建议与常见错误。
    可用
  • 文件系统变更监视:WatchService

    JAVA 25 SELF
    等级 40,课时 4
    在本讲中我们解析 NIO.2 中用于监视文件系统的 API — WatchService:如何获取服务、如何通过 Path.register(...) 注册目录、有哪些可用事件( ENTRY_CREATE、 ENTRY_DELETE、 ENTRY_MODIFY),以及如何组织处理循环( WatchService.take() → key.pollEvents() → key.reset())。我们还将讨论其限制(默认不进行递归监视)、在 Windows/Linux/macOS 上的特点、实际应用示例和常见错误。
    可用
  • 1
  • ...
  • 17
  • 18
  • 19
  • 20
  • 21
  • ...
  • 30
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym