------- android培训、java培训、期待与您交流! ----------
IO流用来处理设备与设备之间的数据传输,JAVA对数据的操作是采用流的方式,可以把流想象为设备之间的通道,而通道的端点则是需要传输数据的设备。如:从键盘把数据读入内存,把内存中的数据写入硬盘,等等。
JAVA中,用于操作流的对象,全部在java.io包中
流按照操作数据的种类分为两种:
字节流和字符流
流按照数据传输方向也分为两种:
输入流和输出流
因此IO流常用的基类有四个:
1,输入字节流(InputStream)
2,输出字节流(OutputStream)
3,输入字符流(Reader)
4,输出字符流(Writer)
由这四个类扩展出来的子类名称,都是以其父类名作为子类名称的后缀,所有子类用于对四大基类在功能上的扩展。
以下为整个IO包中流对象的体系图,其中红色为抽象类,绿色为普通类,灰色为已不建议使用的类:
字符流产生的原因?
有一种数据格式为文本格式,也就是我们现在使用的英文字母和汉字。这些字符在计算机中以二进制形式保存,用0和1串的不同组合来代表一个字符。如:英文字母表为ASCII表,汉字表为GB2312,后经过一次扩充后成为GBK。因为每个国家都有各自的字符,但使用同样的编码方式,对字符转码造成了阻碍。后来,世界标准组织推出unicode编码表,全世界的每个字符用32位的二进制表示,后经过对存储空间的优化,变为UTF-8编码。为了解决在多种字符编码中切换的问题,产生了用于处理字符编码的字符流。
未完待续。。。