学习 Java 的 IO(输入输出) 是 Java 基础中非常重要的一部分,但内容比较多、容易混乱。下面我按学习路径 + 核心概念 + 实践方法给你一个清晰的学习路线。
IO 主要解决:
核心目标:
如何高效、安全地把数据“读进来”或“写出去”
Java IO 主要分为两大类:
| 类型 | 抽象类 | 用途 |
|---|---|---|
| 字节流 | InputStream / OutputStream |
图片、视频、所有二进制 |
| 字符流 | Reader / Writer |
文本(含中文) |
⚠️ 字符流 = 字节流 + 编码处理
Java IO 大量使用装饰模式:
节点流(基础)
↓
处理流(增强功能)
例如:
new BufferedReader(
new InputStreamReader(
new FileInputStream("a.txt")
)
)
先学会这 4 个类:
FileInputStreamFileOutputStreamFileReaderFileWriter示例(字符流写文件):
try (FileWriter fw = new FileWriter("a.txt")) {
fw.write("Hello IO");
}
✅ 重点:
try-with-resources(自动关闭)学会“加速 IO”:
BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter示例:
try (BufferedReader br = new BufferedReader(
new FileReader("a.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
✅ 关键理解:
InputStreamReaderOutputStreamWriter用于:
new InputStreamReader(
new FileInputStream("a.txt"), "UTF-8")
ObjectInputStreamObjectOutputStream条件:
Serializableoos.writeObject(user);
User u = (User) ois.readObject();
Java 7+ 推荐使用:
FilesPathsPathList<String> lines = Files.readAllLines(
Paths.get("a.txt"));
✅ 优点:
Reader + 指定编码先学字节/字符流 → 再学缓冲 → 理解装饰模式 → 最后学 NIO
如果你愿意,我可以:
你更想从哪一步开始?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。