java中,缓冲流的疑惑?

filereader()和filewriter()的read(char[]c)和write(Stringstr,intoff,intlen)方法不是也起到了缓冲作用吗?为... filereader()和filewriter()的read(char[] c)和write(String str, int off, int len)方法不是也起到了缓冲作用吗?为什么一些书或者视频上都说非缓冲流效率低,说是数据都是读一个写一个,需要缓冲流对象才能提高效率???很疑惑!!! 展开
 我来答
滑过的板砖
2013-11-03 · TA获得超过270个赞
知道小有建树答主
回答量:305
采纳率:100%
帮助的人:184万
展开全部
FileReader FileWriter 是字符流没有缓冲的作用。
缓存流是 BufferedReader 和 BufferedWriter
流的读取和传输都需要时间,如果一次性读取一个字节或者字符就发送到服务器,必定没有一次读取多个字节和字符然后发送到服务器高效。
追问
write(String str, int off, int len)方法不是将数组填充满了才写入的吗?
追答
那是你手动添加了一个缓冲,你去了解下Buffered开头的流。
匿名用户
2013-11-03
展开全部
对程序来讲,缓存是效率高的。

写多少、立即输出,或,有多少意即读,这样对程序来讲效率就低了,因为IO很可能跟不上程序那么快的。

缓存,带来一些IO上的别的问题,如来不及处理,就关闭IO流等。
追问
write(String str, int off, int len)方法不是将数组填充满了才写入的吗?怎么你说写多少、立即输出,或,有多少意即读??看来你也是没看懂我表达的意思!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f305228
推荐于2017-11-26 · TA获得超过131个赞
知道小有建树答主
回答量:178
采纳率:100%
帮助的人:99万
展开全部
首先起到缓冲作用的并不是你所说的某个方法实现的;缓冲是你建立某个流的时候由某个缓冲类进行包装,当你调用读写操作时,自动触发数据缓冲操作的。
还有,用不用缓冲效率的高低你从小数据量的操作很难看出来,如果,你有大批量的文件要处理的时候,你会很头疼没有用缓冲类的。
再有,我们平时用的InputStream类等是字节流,而FileReader等类都只是字符流,它们对数据操作时不会起到缓冲作用。这些类读写数据时,每进行一次操作都会去访问一次文件,这样效率自然就会很低。所谓缓冲其实就是,缓冲包装类会在你进行读写操作之前,读入一批数据。然后进行读写操作时直接从缓冲区取数据(访问缓冲区),当缓冲区的数据操作完毕时才再次读取文件。其实,缓冲类的作用就跟电脑内存条的作用是一样的。
更多追问追答
追问
没看懂你说的是什么意思!好像你没看懂我表达的意思!
追答
你不就是要问为什么飞缓冲流效率低吗
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式