本帖最后由 wangziqian 于 2015-5-12 14:20 编辑
Android菜鸟饭团#Java中文学习#第十九课 活动笔记
流是什么东西?打个比方,通过一条管道从水桶中取水,这条管道就可以称作是流。 在程序中,信息传递主要是靠流这种方式。 从这张图可以看到,可以从文件让数据“流”到程序中,可以从程序让数据“流”入文件,也可以从网络获取程序,程序程序之间也可相互流通数据。 java 流的分类 认清流的分类可以更有效率的学习这一章的知识 按流向分: 输入流: 程序可以从中读取数据的流。 输出流: 程序能向其中写入数据的流。 按数据传输单位分: 字节流: 以字节为单位传输数据的流 字符流: 以字符为单位传输数据的流 按功能分: 节点流: 用于直接操作目标设备的流 处理流(过滤流): 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。 1.输出流 2.输入流 因此输入和输出都是从程序的角度来说的。 3.字节流:一次读入或读出是8位二进制。 4.字符流:次读入或读出是16位二进制。 字节流和字符流的原理是相同的,只不过处理的单位不同而已。凡是后缀是Stream的都是字节流,而后缀是Reader,Writer是字符流。 字符流和字节流的主要区别: 1.字节流读取的时候,读到一个字节就返回一个字节; 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时。先去查指定的编码表,将查到的字符返回。 2.字节流可以处理所有类型数据,如:图片,MP3,AVI视频文件,而字符流只能处理字符数据。只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用字节流。 5.节点流:直接与数据源相连,读入或读出。 直接使用节点流,读写不方便,为了更快的读写文件,才有了处理流。 6.处理流:与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。 Jdk提供的流继承了四大类:InputStream(字节输入流),OutputStream(字节输出流),Reader(字符输入流),Writer(字符输出流)。 以下几幅图表展示了这四大类和对应处理流 转化流:InputStreamReader/OutputStreamWriter,把字节转化成字符。 数据流:DataInputStream,DataOutputStream。 输出一个8个字节的long类型或4个字节的float类型,可以一个字节一个字节输出,也可以转换成字符串输出,但是这样转换费时间,若是直接输出该多好啊,因此这个数据流就解决了我们输出数据类型的困难。数据流可以直接输出float类型或long类型,提高了数据读写的效率。 代码实战 1.InputStream(字节输入流) 2.Reader(字符输入流) 3.Writer(字符输入流) 可以看到执行代码的时候都要抛出IOExcepion异常,IOException异常是必须抛出的。 【书记员:王子谦】
每一个技术小白都有一个成为大神的梦想,现在Android菜鸟饭团就给你这个成就梦想的机会。我们提供最新的Android技术教学,只要你又耐心和毅力就一定会在这里有所收获。 Android菜鸟饭团由南阳GDG组织发起,秉承着开放、分享、创新的原则,希望通过GDG社区的力量能够给更多的想要学习Android开发技术的小白们创造一个学习,交流,分享的环境。同往常的GDG活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。 |