点击打开链接------- android培训、java培训、期待与您交流! ----------
JAVA对数据的操作都是通过数据流的方式。JAVA用于操作流的对象都在java.io包中, 此包中含有与数据操作有关的N多接口和N多类,通过数据流、序列化和文件系统提供系统输入和输出,除非另有说明,否则向此包的任何类或接口中的构造方法或方法传递 null 参数时,都将抛出NullPointerException ,IO流用来操作或者处理设备之间的数据传输,数据有多种类型包括文本数据,和其他非文本(音频,视频等)数据。
流的分类:
按操作数据分为字节流和字符流。
按数据的流向分为输入流和输出流。
字节流和字符流的区别以及字符流的由来:
其实在计算机一开始所有的操作都是基于字节流(1和0组合成的串)的,在后来聪明的人们将1和0的组合映射成生活中常见的文字,出现了东西方的差异,西方的每个单词都是由26个英文字母组合而成,用0和1特定长度的组合标识了26个英文字母以及常用的特殊符号几乎涵盖所有,这就是ASCALL码表。大家知道咱们中国的文字博大精深56个名族语言各有千秋,这样标识起来困难一定会很大,担再大的困难也阻挡不了人类探索的欲望,于是乎特定长度1和0的串摇摇欲坠的将部分最常用的汉字也进行了标识,担不完全,这就是gb2312编码表,由于是不完全的,所以后来又有人对其进行了完整性的扩充及出现了伟大的GBK编码表。但是国家不同语言不同(日语,韩语,德语等等),再到后来国际标准化组织就发话了说“咱们能不能把全世界各种语言都弄成一张映射表”及就是UNICODE编码表。
常用IO流体系结构图: