2026-05-28 Java二进制I_O:字节流、字符流与try-with-resources
背景
借书系统之后进入了独立的I/O基础课——只做读写文件,不叠项目。
核心三层嵌套
1 | |
字节流 → 字符流 → 缓冲流,每一层加一项功能:
- FileInputStream — 最底层,一个字节一个字节读
- InputStreamReader — 把字节拼成字符,指定编码(UTF-8)
- BufferedReader — 一次读一行,带缓冲
写文件反过来,同样的三层:
1 | |
try-with-resources(Java 7)
try 后面加一对括号,把需要关的资源放进去。不管代码正常跑完还是中间抛异常——括号里的资源都会被自动关闭。不用手动写 close(),不会忘,不会泄露文件句柄。
和第 8 课的 try-catch 是两回事:try-catch 是兜底抓异常,try-with-resources 是自动关门。
总结
| 流向 | 字节流 | 字符流 | 缓冲流 |
|---|---|---|---|
| 读 | FileInputStream | InputStreamReader | BufferedReader |
| 写 | FileOutputStream | OutputStreamWriter | BufferedWriter |
十个名词,一节课扫完。读和写两端对称,try-with-resources 自动关门。
2026-05-28 Java二进制I_O:字节流、字符流与try-with-resources
http://example.com/2026/05/28/2026-05-28 Java二进制I_O:字节流、字符流与try-with-resources/