黑马程序员技术交流社区
标题:
关于IO流的问题 纠结了很久都没纠结明白啊!
[打印本页]
作者:
苏格拉底的弟子
时间:
2012-1-3 16:36
标题:
关于IO流的问题 纠结了很久都没纠结明白啊!
本帖最后由 苏格拉底的弟子 于 2012-1-5 14:11 编辑
IO流中 FileReader 和 FileWriter 都有其相应的装饰对象 BufferedReader 和BufferedWriter 其原理都是内部定义了数组来对其进行缓冲... FileReader里面没有数组 也就没有缓冲 要一个一个读 所以要 BufferedReader 来装饰 但是FileWrite里面不是有写入字符串的方法吗,先把字符串写进缓冲里(参考毕向东io流视频)也就是说里面有缓冲了 那为什么还要BufferedWriter 来增强呢? 求解
作者:
罗全涛
时间:
2012-1-3 18:58
一个讲的是字符串,一个讲的是缓冲区。读取字符串仅仅只是BufferedReader的readLine方法,它返回的
是字符串形式,而写入字符串在Writer抽象类中就已经定义了。不是FileWriter特有的。在writer中没有
缓冲区,在FileWriter中有怎么会有,它仅仅是继承了writer,并没有覆盖或定义任何方法?
首先你要明白为什么要引入缓冲区:1:如果没有缓冲区,那么write就会每次都调用底层资源,而如果
有缓冲区,write只是将其写入缓冲区,没有调用底层资源,通过flush刷新后,才会调用底层资源,能
很大程度上节约系统资源。2:如果读取数据和写入数据的速率不同,加入缓冲区能很大程度上平衡
读入读出速率。
作者:
苏格拉底的弟子
时间:
2012-1-4 23:46
原来是每次都调用了底层资源啊... 定义数组后 就可以减少调用底层资源的次数了...
作者:
罗全涛
时间:
2012-1-5 01:02
苏格拉底的弟子 发表于 2012-1-4 23:46
原来是每次都调用了底层资源啊... 定义数组后 就可以减少调用底层资源的次数了... ...
问题弄懂后,请结贴吧,别总是求助了额。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2