Java IO 主要关注:
1. 从原始数据源中读取数据
2. 输出原始数据到目标媒介
典型的数据源和目标媒介包括:
1. 文件
2. 管道
3. 网络连接
4. 内存缓存
5. System.in, System.out, System.error (Java标准输入、输出、错误输出)
注意:对输入和输出的理解:
1. 输入流可以理解为向内存输入
2. 输出流可以理解为从内存输出
在 Java IO 中,【流】是一个核心概念。概念上来说是一个连续的数据流,既可以从流中读取数据,也可以向流中写入数据,流与数据源或数据流向的媒介相关联。
在 Java IO 中,流既可以是字节流(以字节为单位进行读写),也可以是字符流(以字符为单位进行读写)。
Java IO 中 InputStream 和 Reader 从数据源中读取数据,OutputStream 和 Writer 将数据写入到目标媒介中,即 InputStream 和 Reader 与数据源相关联,OutputStream 和 Writer 与目标媒介相关联。
Java IO 中定义的 InputStream / OutputStream / Reader / Writer 的子类分别用于:
1. 文件访问
2. 网络访问
3. 内存缓存访问
4. 线程内部通信(管道)
5. 缓冲
6. 过滤
7. 解析
8. 读写文本
9. 读写基本类型数据
10. 读写对象
不同子类用途参考下表: