Java I/O工作机制
1.Java I/O类库的基本架构
前两组主要是传输数据的数据格式,后两组主要是传输数据的方式,Socket类并不在I/O包下,暂且划在一起.
作者观点:I/O问题的核心问题要么是数据格式影响I/O操作,要么是传输方式影响I/O操作.数据格式和传输方式是影响效率最关键的因素.
2.基于字节的I/O操作
输入接口InputStream类层次结构
输出接口OutputStream类层次结构
3说明两点
A.操作数据的方式是可以组合使用的
OutputStream out = new BufferedOutputStream(new ObjectOutputStream(new FileOutputStream("filename")));
B.必须要指定流最终要写入到什么地方,要么磁盘,要么网络.
4.基于字符的I/O操作接口
Reader类层次结构
Writer类层次结构
5.说明
不管是磁盘还是网络传输,最小的存储单元都是字节,而不是字符,所以I/O操作的都是字节而不是字符.而我们通常操作的都是字符文件,所以为了方便操作,才提供直接读写字符的接口.
从字符到字节必须经过编码转换,此过程是一个耗时操作,而且经常出现各种问题,我的另一篇blog:http://www.cnblogs.com/fxust/p/7118416.html介绍了字符与字节转化的操作.