Java IO(Input/Output,输入输出) 是 Java 中用于程序与外部世界进行数据交换的一套 API,比如:
程序运行时,数据通常在内存中;
但很多数据在外部设备中(硬盘、网络、终端),IO 就是“搬运数据”的桥梁。
外部设备 <-- IO --> JVM内存
Java IO 基于 “流(Stream)” 的概念:
| 类型 | 说明 | 常见类 |
|---|---|---|
| 字节流 | 处理所有二进制数据 | InputStream / OutputStream |
| 字符流 | 处理文本(字符) | Reader / Writer |
✅ 文本用字符流,图片/视频用字节流
| 类型 | 作用 |
|---|---|
| 节点流 | 直接连数据源(文件、网络) |
| 处理流 | 包装节点流,增强功能(缓冲、转换) |
| 类型 | 输入 | 输出 |
|---|---|---|
| 字节 | InputStream |
OutputStream |
| 字符 | Reader |
Writer |
所有 IO 类几乎都继承自这 4 个类。
FileInputStream fis = new FileInputStream("a.txt");
FileOutputStream fos = new FileOutputStream("b.txt");
FileReader fr = new FileReader("a.txt");
FileWriter fw = new FileWriter("b.txt");
BufferedReader br = new BufferedReader(
new FileReader("a.txt")
);
InputStreamReader isr =
new InputStreamReader(System.in);
try (BufferedReader br =
new BufferedReader(new FileReader("test.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
✅ try-with-resources 自动关闭流,防止资源泄漏
| 对比 | IO | NIO |
|---|---|---|
| 模型 | 阻塞 | 非阻塞 |
| 出现版本 | Java 1.0 | Java 1.4 |
| 性能 | 一般 | 更高 |
Java IO 就是用来“读和写”的,核心是流,分为字节流和字符流。
如果你愿意,我也可以:
你想从哪方面继续?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。