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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 读取文本文件:逐行与整文件

    JAVA 25 SELF
    等级 36,课时 1
    本讲解将介绍使用 BufferedReader 的逐行读取,以及通过 Files.readAllLines/ Files.readString 的整文件读取,如何选择缓冲区(例如 8192 字节)、如何借助 try-with-resources 安全关闭资源,以及如何处理字符编码( StandardCharsets.UTF_8)。还展示了实用示例(统计行数、日志搜索、解析配置)和常见错误(例如在整读超大文件时触发 OutOfMemoryError)。
    可用
  • 二进制文件的读写:InputStream、OutputStream

    JAVA 25 SELF
    等级 36,课时 2
    讲解文本文件与二进制文件的区别、字节基础流 InputStream/ OutputStream 及其文件实现( FileInputStream、 FileOutputStream)。编写带缓冲的拷贝,讨论逐字节与分块读取的速度差异,通过 write() 写入字节数组、 try-with-resources 的细节、缓冲区大小的选择 4– 16 KB、安全使用 readAllBytes() 以及常见错误(例如对二进制数据使用 FileReader/ FileWriter)。
    可用
  • DataInputStream, DataOutputStream:处理基本类型

    JAVA 25 SELF
    等级 36,课时 3
    本讲解使用 DataInputStream 和 DataOutputStream 来讲解 Java 中的二进制输入/输出:如何用 writeXXX/ readXXX 方法写入和读取基本类型( int、 double、 boolean)和字符串( String),为什么顺序很重要,如何存储数组,什么时候有必要再加一层 BufferedInputStream/ BufferedOutputStream,以及哪些常见错误会导致 IOException 或 EOFException。
    可用
  • 使用 try-with-resources:自动关闭资源

    JAVA 25 SELF
    等级 36,课时 4
    讲解在 Java 中安全处理资源的现代方式 —— try-with-resources:与旧有模式 try/ catch/ finally + close() 的对比,对类型的要求(实现 AutoCloseable 或 Closeable), try(...){...} 的语法,关闭顺序,通过 getSuppressed() 获取“被抑制”的异常,结合 I/O 流与自定义资源的示例,以及建议与常见错误。
    可用
  • 什么是编码,为什么需要它

    JAVA 25 SELF
    等级 37,课时 0
    来看看什么是编码,以及为什么没有编码计算机文本就会变成“乱码”。比较常见的集合: UTF-8、 Windows-1251、 ASCII、 Unicode/ UTF-16。讨论 JVM 中字符串的内部表示( String 使用 Unicode)以及正确的输入/输出:通过 InputStreamReader/ OutputStreamWriter 和 StandardCharsets.UTF_8 显式指定编码。最后——实践示例与常见错误。
    可用
  • 主要字符编码:UTF-8、UTF-16、ISO-8859-1

    JAVA 25 SELF
    等级 37,课时 1
    讲解 Java 开发者常遇到的三种基础编码:什么是 UTF-8(Web 和大多数格式的标准)、JVM 中字符串的内部格式—— UTF-16(含代理项对和 BOM),以及为何至今仍会遇到 ISO-8859-1。说明与 ASCII 的兼容性、每个字符占用的字节数,并通过 StandardCharsets、 Files.write、 Files.readString、 Paths.get 演示在 Java 中正确处理编码。最后——常见错误:读/写方式不匹配、依赖系统“默认”编码、把 UTF-16/ UTF-8 搞混。
    可用
  • 在读/写文件时指定字符编码

    JAVA 25 SELF
    等级 37,课时 2
    如何避免“乱码”,让文本在所有机器上显示一致:解析系统编码 ( "file.encoding"),使用 Charset 与 StandardCharsets 常量,通过 Files . newBufferedReader 和 Files . newBufferedWriter 进行读/写,使用 try-with-resources,查看可用编码并遵循最佳实践(默认 — "UTF-8")。最后——常见错误及其规避方法。
    可用
  • 编码不匹配的问题与常见错误

    JAVA 25 SELF
    等级 37,课时 3
    在本讲中,我们讨论“乱码”、字符丢失( ?)、类似 MalformedInputException 的异常;分析成因( Windows-1251/ UTF-8 不匹配、系统“默认”编码、 BOM)、诊断方式( file.encoding)以及最佳实践:显式指定 Charset,使用带 StandardCharsets 的 Files/ BufferedReader,避免使用 FileReader/ FileWriter,以及针对 XML/ JSON 与 BOM 的注意事项。
    可用
  • 文件重新编码:以一种字符集读取,用另一种字符集写入

    JAVA 25 SELF
    等级 37,课时 4
    如何使用 java.nio.file 与 java.io 中的类,正确地以一种编码读取文本并以另一种编码写入:使用 Files.newBufferedReader/ Files.newBufferedWriter 或 InputStreamReader/ OutputStreamWriter,指定所需的 Charset,应用 try-with-resources,并避免系统默认编码的陷阱。分步算法、Windows-1251 → UTF-8 示例、细节(BOM、大文件、异常)以及常见错误。
    可用
  • 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、谨慎覆盖)。
    可用
  • 1
  • ...
  • 16
  • 17
  • 18
  • 19
  • 20
  • ...
  • 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