全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-10 8 分钟 ✍️ juanwangdev

Java IO 流体系

Java IO 流是数据传输的抽象,分为字节流和字符流两大体系。

流的分类

按数据类型

类型基类特点
字节流InputStream/OutputStream处理二进制数据,通用
字符流Reader/Writer处理文本数据,编码转换

按流向

类型字节流基类字符流基类
输入流InputStreamReader
输出流OutputStreamWriter

按功能

类型说明示例
节点流直接操作数据源FileInputStream
处理流包装节点流,增强功能BufferedReader

字节流体系

text
InputStream (抽象基类)
├── FileInputStream        // 文件读取
├── ByteArrayInputStream    // 字节数组读取
├── SocketInputStream      // 网络读取
├── FilterInputStream      // 过滤流基类
│   ├── BufferedInputStream  // 缓冲流
│   ├── DataInputStream      // 数据流
│   └── PushbackInputStream  // 回推流
└── ObjectInputStream      // 对象反序列化

OutputStream (抽象基类)
├── FileOutputStream       // 文件写入
├── ByteArrayOutputStream   // 字节数组写入
├── FilterOutputStream     // 过滤流基类
│   ├── BufferedOutputStream // 缓冲流
│   └── DataOutputStream     // 数据流
└── ObjectOutputStream     // 对象序列化

字符流体系

text
Reader (抽象基类)
├── FileReader            // 文件读取
├── InputStreamReader     // 字节→字符转换
├── BufferedReader        // 缓冲读取
├── CharArrayReader       // 字符数组读取
└── PipedReader           // 管道读取

Writer (抽象基类)
├── FileWriter            // 文件写入
├── OutputStreamWriter    // 字符→字节转换
├── BufferedWriter        // 缓冲写入
├── CharArrayWriter       // 字符数组写入
└── PrintWriter           // 格式化输出

流的命名规律

规律说明示例
XXXInputStream字节输入流FileInputStream
XXXOutputStream字节输出流FileOutputStream
XXXReader字符输入流FileReader
XXXWriter字符输出流FileWriter
BufferedXXX缓冲处理流BufferedReader

选择原则:二进制数据用字节流,文本数据用字符流。

要点总结

  • IO 流分字节流和字符流两大体系
  • 字节流基类:InputStream/OutputStream
  • 字符流基类:Reader/Writer
  • 节点流直接操作数据源,处理流增强功能
  • 二进制数据用字节流,文本数据用字符流
  • 常用命名规律:InputStream/OutputStream/Reader/Writer

📝 发现内容有误?点击此处直接编辑

← 上一篇 IO 与 NIO 性能对比
下一篇 → NIO 核心组件(Channel、Buffer、Selector)
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库