A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 淡忘初学者 中级黑马   /  2015-8-13 11:29  /  512 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

以下内容基于张孝祥老师视频课程笔记:
        在我们遇到需要使用流进行数据传输时,最痛苦的就是流对象很多,但不知道该用哪一个流对象。我们可以通过三个明确来完成:
1、明确源和目的:
源---输入流: 字节流  InputStream、字符流 Reader
目的---输出流:字节流 OutputStream、字符流 Writer
2、操作的数据是否为纯文本(用来明确体系:目的和源都要明确一遍)?
是:用字符流     不是:用字节流
注:字节流一般用来操作字节,可用于文本、音频、图片等类型文件;
       而字符流一般用来操作字符,一般用来操作纯文本文件(包括键盘输入(System.in)、控制台输出(System.out)和文本文件)。
3、当体系明确后,再明确要使用哪个具体对象:
     通过设备来区分:源设备:内存、硬盘、键盘
                                目的设备:内存、硬盘、控制台
4、最后看是否需要缓冲区来提供效率:可将相应对象加入相应缓冲区装饰。
在我的理解中,有以下两类缓冲区:
        ①、自定义的缓冲区:定义字节数组:byte[] buf=new byte[1024];  
                                         定义字符数组: char[] buf =new char[1024];
             使用输入流的read方法将数据写入数组缓冲区可起到相应缓冲作用(但如果数据较大不建议使用此缓冲区,防止内存溢出)。
        ②、字节字符流自带缓冲区: 字节流:BuffredInputStream 、BufferedOutputStream
                                                     字符流:BufferedReader 、BufferedWriter、CharArrayReader、CharArrayWriter、StringReader、StringWriter
此帖是视频课内容加上我自身见解所写,有不足之处望各位不吝赐教,谢谢!

6 个回复

倒序浏览
赞一个
回复 使用道具 举报

您是黑马管理员么,为什么我除开前两篇有技术分,后几篇就没有了呢~~实在后几篇也有写得很好的
回复 使用道具 举报
支持一下
回复 使用道具 举报
很好,基本都概况了IO体系的全部内容
回复 使用道具 举报
段燚涛 发表于 2015-8-24 13:04
很好,基本都概况了IO体系的全部内容

谢谢~~互相加油
回复 使用道具 举报

谢谢~~~互相加油~我也是新手
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马