I/O 类体系 在JDK API 中,基础的IO 类都位于java
io 包,而新实现的IO 类则位于一系列以java
nio 开头的包名中,这里首先介绍java
io 包中类的体系结构
按照前面的说明,流是有方向的,则整个流的结构按照流的方向可以划分为两类: 1、输入流: 该类流将外部数据源的数据转换为流,程序通过读取该类流中的数据,完成对于外部数据源中数据的读入
2、输出流: 该类流完成将流中的数据转换到对应的数据源中,程序通过向该类流中写入数据,完成将数据写入到对应的外部数据源中
而在实际实现时,由于JDK API 历史的原因,在java
io 包中又实现了两类流:字节流(byte stream)和字符流(char stream)
这两种流实现的是流中数据序列的单位,在字节流中,数据序列以byte 为单位,也就是流中的数据按照一个byte 一个byte 的顺序实现成流,对于该类流操作的基本单位是一个byte,而对于字节流,数据序列以char 为单位,也就是流中的数据按照一个char 一个插入的顺序实现成流,对于该类流操作的基本单位是一个char
另外字节流是从 JDK1
0 开始加入到 API 中的,而字符流则是从 JDK1
1 开始才加入到 API 中的,对于现在使用的JDK 版本来说,这两类流都包含在API 的内部
在实际使用时,字符流的效率要比字节流高一些
在实际使用时,字符流中的类基本上和字节流中的类对应,所以在开始学习IO 类时,可以从最基础的字节流开始学习
在SUN 设计 JDK 的IO 类时,按照以上的分类,为每个系列的类设计了一个父类,而实现具体操作的类都作为该系列类的子类,则IO 类设计时的四个体系中每个体系中对应的父类分别是: 字节输入流Inpu tStream 该类是IO 编程中所有字节输入流的父类,熟悉该类的使用将对使用字节输入流产