Java IO 流体系
Java IO 流是数据传输的抽象,分为字节流和字符流两大体系。
流的分类
按数据类型
| 类型 | 基类 | 特点 |
|---|---|---|
| 字节流 | InputStream/OutputStream | 处理二进制数据,通用 |
| 字符流 | Reader/Writer | 处理文本数据,编码转换 |
按流向
| 类型 | 字节流基类 | 字符流基类 |
|---|---|---|
| 输入流 | InputStream | Reader |
| 输出流 | OutputStream | Writer |
按功能
| 类型 | 说明 | 示例 |
|---|---|---|
| 节点流 | 直接操作数据源 | 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
📝 发现内容有误?点击此处直接编辑