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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘晓康 中级黑马   /  2012-4-7 13:31  /  2798 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

BufferedReade buf=new BufferedReade(new InputStreamReader())
BufferedReader为什么要与new InputStreamReader()配套用,是什么原因?

8 个回复

倒序浏览
BufferedReader是缓冲区,用它的作用是提高读取效率。
回复 使用道具 举报
BufferedReader读取的是字符流,当要读取字节流信息的时候需要把 字节流转换成字符流的转换器InputStreamReader。
如果文件直接用FileReader读取的话就不需要它了。
回复 使用道具 举报
BufferedReade是一个缓冲区 提高效率 读取字符流
InputStreamReader这个是可以让字节流和字符流转换的转换器
回复 使用道具 举报
本帖最后由 孙利川 于 2012-4-7 14:45 编辑

BufferedReade buf=new BufferedReade(new InputStreamReader())
这句代码通常这样用:
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in))
InputStreamReader的作用是将字节流转换成字符流,BufferedReader对象是字符流缓冲区对象,它可以提高读取效率。
System.in是InputStream类型,是字节流对象,它是输入设备,默认是键盘,所以要将该键盘的字节流对象转换成字符流对象,就用到new InputStreamReader(),这样可以将键盘输入作为字符流对象来处理,而new BufferedReader()是提高效率用的。
回复 使用道具 举报
BufferdeReader是带缓冲区的字符流 使用的时候必须指定其要缓冲的字符流
BufferedReader bufr = new BufferedReader(new FileReader("xxx.txt"));
InputStreamReader相当于一个将字节流转换为字符流的装置
如果需要用BufferedReader 去读取字节流
我们就必须先将字节流转换为字符流
InputStreamReader insr = new InputStreamReader(new FileInputStream("xxx.txt"));
然后再用BufferedReader bufr = new BufferedReader(insr);

看API吧
回复 使用道具 举报
这两天我刚好也看到这,上面说的都很对  不懂回头再过过 就会很明白啦
回复 使用道具 举报
InputStreamReader是字节流通向字符流的桥梁,BufferedReader是带缓冲区的字符流,用于提高读取字符效率。原理同
BufferedReader bufr = new BufferedReader(new FileReader("123.txt"));
不同的是源、流向不同;相同的是都是从流的一端到另一端,数据都发生了转移。
而BufferedReader相当于一个容器,用于对读取的内容进行缓冲,这是操作流时一种常用的提高效率的方法。
回复 使用道具 举报
pray 高级黑马 2014-4-26 04:00:41
9#
让某位想成名的少女向媒体说她与该帖作者发生过性关系的好帖  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马