郑莉版输入输出流课件
在Java中将信息的输入与输出过程抽象为I/O流
I/O流一旦被创建就会自动打开
通过调用close方法,可以显式关闭任何一个流
如果流对象不再被引用,Java的回收机制也会隐式地关闭它
读写数据的方法
不论数据从哪来,到哪去,也不论数据本身是何种类型,读写数据分方法大体上都是一样的
I/O流的分类
- 从流的方向划分
- 输入流
- 输出流
- 从流的分工划分
- 节点流
- 处理流
- 从流的内容划分
- 面向字符的流
- 面向字节的流
自己补充了解:
节点流和处理流的区别
java.io 包的顶级层次结构
面向字符的流: 专门用于字符数据
面向字节的流: 用于一般目的
面向字符的流
- 针对字符数据的特点进行过优化,提供一些面向字符的有用特性
- 源或目标通常是文本文件
实现内部格式和文本文件中的外部格式之间的转换
面向字符的抽象类Read和Writer
- java.io包中所有流的抽象基类
- Reader提供了输入字符的API
- Writer提供了输出字符的API
- 它们的子类又分为两大类
- 节点流: 从数据源读入数据或往目的地写出数据
- 处理流: 对数据执行某种处理
- 多数程序使用这两个抽象类的一系列子类来读入/写出文本信息
- 例如: FileRader/FileWriter用来读写文本文件
处理流和节点流一览:
面向字节的流
- 数据源或目标中含有非字符数据,必须用字节流来输入/输出。
- 通常被用来读写诸如图片、声音之类的二进制数据
- 绝大多数数据是被存储为二进制文件的,世界上的文本大约只能占到2%,通常二进制文件比含有相同数据量的文本文件小得多。