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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • IOException 和 FileNotFoundException:错误处理

    JAVA 25 SELF
    等级 38,课时 0
    Java 中 I/O 异常的层次结构是怎样的, IOException 与其子类 FileNotFoundException 有何区别、何时会出现以及如何正确处理。我们将讲解 catch 块的顺序、文件读/写实践、日志记录建议,以及一张最常见错误的简表。还会涉及受检异常(checked exceptions)、关键字 try、 catch、 finally、 throws,以及 try-with-resources 的用法。
    可用
  • 检查文件和目录是否存在

    JAVA 25 SELF
    等级 38,课时 1
    如何在 Java 中检查文件或文件夹是否存在:使用 File 类及其方法 exists()、 isFile()、 isDirectory(),以及更现代的 NIO 思路,通过 Path 和 Files —— Files.exists()、 Files.isRegularFile()、 Files.isDirectory()。我们将讨论 TOCTOU 问题以及为何“先检查”不能替代错误处理:即便在调用 exists() 之后,你仍可能遇到 FileNotFoundException 或 AccessDeniedException,因此务必使用 try 块,并尽可能使用 try-with-resources。另外还有实践演示:存在时读取文件、通过 Files.createDirectory() 和 Files.createDirectories() 创建目录、处理相对路径与绝对路径。
    可用
  • 处理损坏的文件与数据恢复

    JAVA 25 SELF
    等级 38,课时 2
    如何通过异常( EOFException、 MalformedInputException、 ZipException、 StreamCorruptedException)识别“损坏的”文件,遇到格式不匹配时该怎么办,以及应使用哪些恢复策略:记录日志并通知用户、在错误前进行部分读取、备份、校验和( SHA-256)。实践:读取到 EOF、正确处理字符编码并分析常见错误(校验、 try-with-resources、谨慎覆盖)。
    可用
  • 权限与对文件系统的访问

    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") 这样的相对路径会带来什么风险。
    可用
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