Java 中 IO 流分为几种?

Java 中 IO 流分为几种?
在Java中,流可以根据不同的特点进行多种划分方式:
- 根据流的流向,可以分为输入流和输出流。
- 根据操作单元,可以划分为字节流和字符流。
- 根据流的角色,可以划分为节点流和处理流。
Java的IO库涉及了40多个类,看起来可能有些杂乱,但实际上它们之间存在一定的关联性。所有这些类都是从以下4个抽象类基类派生出来的:
- InputStream/Reader:所有输入流的基类,前者是字节输入流,后者是字符输入流。
- OutputStream/Writer:所有输出流的基类,前者是字节输出流,后者是字符输出流。
IO 流用到了什么设计模式?
其实,Java 的 IO 流体系还用到了一个设计模式——装饰器模式。
InputStream 相关的部分类图如下,篇幅有限,装饰器模式就不展开说了。