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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 袁世宇 黑马帝   /  2011-11-23 14:27  /  2694 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 袁世宇 于 2011-11-23 18:57 编辑

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

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

5 个回复

倒序浏览
强子 黑马帝 2011-11-23 15:39:40
沙发
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吧

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。所以这样写
BufferedReader in
   = new BufferedReader(new FileReader("foo.in"));
是为了提高文件的读写速度。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
崔浩 黑马帝 2011-11-23 16:31:22
板凳
看看毕老师的视频,老师讲的非常清楚,而且还有例子
回复 使用道具 举报
冯敏 黑马帝 2011-11-23 16:34:49
报纸
BufferReader是从字符输入流中读取文本写入缓冲区,InputStreamReader是将字节流转换为字符流,因为键盘录入的read方法是字节流InputStream中的方法,字节流中是不带缓冲的,如果要用缓冲提高读写速率,必须用InputStreamReader进行转换

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
知道了 多谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马