1 Java IO版本
Java库的IO分为输入/输出两部分。
早期的Java 1.0版本的输入系统是InputStream及其子类,输出系统是OutputStream及其子类。
后来的Java 1.1版本对IO系统进行了重新设计。输入系统是Reader及其子类,输出系统是Writer及其子类。
Java1.1之所以要重新设计,主要是为了添加国际化支持(即添加了对16位Unicode码的支持)。具体表现为Java 1.0的IO系统是字节流,而Java 1.1的IO系统是字符流。
字节流,就是数据流中最小的数据单元是8位的字节。
字符流,就是数据流中最小的数据单元是16位的字符。
字节流在操作的时候,不会用到缓冲;而字符流会用到缓冲。所以,字符流的效率会更高一些。
至于为什么用到缓冲会效率更高一些呢?那是因为,缓冲本质上是一段内存区域;而文件大多是存储在硬盘或者Nand Flash上面。读写内存的速度比读写硬盘或Nand Flash上文件的速度快很多!
目前,文件大多以字节的方式存储的。所以在开发中,字节流使用较为广泛。
2 Java 1.0和Java 1.1 的IO类的比较
表01_Java 1.0和Java 1.1的IO基本类对比表
表02_Java 1.0和Java 1.1的IO装饰器对比表
之所以将Java IO系统分为基本类和装饰器,是因为基本类主要是将流分为文件、字符串等不同种类,而装饰器是为了实现“Decorator模式”(参考 “4 Decorator模式”)。
时间: 2024-10-28 11:29:28