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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 苏格拉底的弟子 于 2012-1-5 14:11 编辑

IO流中 FileReader 和 FileWriter 都有其相应的装饰对象 BufferedReader 和BufferedWriter    其原理都是内部定义了数组来对其进行缓冲...  FileReader里面没有数组  也就没有缓冲 要一个一个读 所以要 BufferedReader 来装饰  但是FileWrite里面不是有写入字符串的方法吗,先把字符串写进缓冲里(参考毕向东io流视频)也就是说里面有缓冲了  那为什么还要BufferedWriter 来增强呢?  求解

评分

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

查看全部评分

3 个回复

倒序浏览
一个讲的是字符串,一个讲的是缓冲区。读取字符串仅仅只是BufferedReader的readLine方法,它返回的
是字符串形式,而写入字符串在Writer抽象类中就已经定义了。不是FileWriter特有的。在writer中没有
缓冲区,在FileWriter中有怎么会有,它仅仅是继承了writer,并没有覆盖或定义任何方法?
首先你要明白为什么要引入缓冲区:1:如果没有缓冲区,那么write就会每次都调用底层资源,而如果
有缓冲区,write只是将其写入缓冲区,没有调用底层资源,通过flush刷新后,才会调用底层资源,能
很大程度上节约系统资源。2:如果读取数据和写入数据的速率不同,加入缓冲区能很大程度上平衡
读入读出速率。

评分

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

查看全部评分

回复 使用道具 举报
原来是每次都调用了底层资源啊...    定义数组后  就可以减少调用底层资源的次数了...
回复 使用道具 举报
苏格拉底的弟子 发表于 2012-1-4 23:46
原来是每次都调用了底层资源啊...    定义数组后  就可以减少调用底层资源的次数了... ...

问题弄懂后,请结贴吧,别总是求助了额。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马