黑马程序员技术交流社区

标题: BufferedReader的问题? [打印本页]

作者: 袁世宇    时间: 2011-11-23 14:27
标题: BufferedReader的问题?
本帖最后由 袁世宇 于 2011-11-23 18:57 编辑

BufferedReade buf=new BufferedReade(new InputStreamReader())
BufferedReader为什么要与new InputStreamReader()配套用,是什么原因?
作者: 强子    时间: 2011-11-23 15:39
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吧

作者: 欧阳文愿    时间: 2011-11-23 16:17
Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。所以这样写
BufferedReader in
   = new BufferedReader(new FileReader("foo.in"));
是为了提高文件的读写速度。
作者: 崔浩    时间: 2011-11-23 16:31
看看毕老师的视频,老师讲的非常清楚,而且还有例子
作者: 冯敏    时间: 2011-11-23 16:34
BufferReader是从字符输入流中读取文本写入缓冲区,InputStreamReader是将字节流转换为字符流,因为键盘录入的read方法是字节流InputStream中的方法,字节流中是不带缓冲的,如果要用缓冲提高读写速率,必须用InputStreamReader进行转换
作者: 袁世宇    时间: 2011-11-23 18:56
知道了 多谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2