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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© asinzuo 中级黑马   /  2015-8-12 17:28  /  9355 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1黑马币
字符流输出时,是不是都先把数据写在流里(写在内存里),然后在刷新到硬盘?
这样的话,字符流缓冲区也是先读到内存里,然后再写出去。缓冲区的作用体现在哪呢?
字节流是直接读一个写一个不需要刷新?字节流加里缓冲区了,又体现在什么地方?

最佳答案

查看完整内容

缓冲区最大的作用就是为了提高读写效率。 我的理解是:程序在读取文件内容时,是需要不断的打开和关闭文件的。这这是耗费时间最多的地方,使用缓冲区,可以在一次有效的打开关闭文件的时间内执行读写更多的数据。 如果没有缓冲区,可能需要执行的操作是查找硬盘文件,打开文件,读取一个字节或字符,写入内存,关闭文件。打开内存,读出一个字节或字符,打开目的文件,写入一个字节或字符,关闭文件和内存。为了一个字符需要操作这 ...

7 个回复

倒序浏览
缓冲区最大的作用就是为了提高读写效率。
我的理解是:程序在读取文件内容时,是需要不断的打开和关闭文件的。这这是耗费时间最多的地方,使用缓冲区,可以在一次有效的打开关闭文件的时间内执行读写更多的数据。
如果没有缓冲区,可能需要执行的操作是查找硬盘文件,打开文件,读取一个字节或字符,写入内存,关闭文件。打开内存,读出一个字节或字符,打开目的文件,写入一个字节或字符,关闭文件和内存。为了一个字符需要操作这么多步骤不是更浪费时间么。
这是我个人的理解,不恰当的地方请各位大神当面指出,给我一次学习的机会。谢谢。
回复 使用道具 举报
我自己理解的:
缓冲区是为了提高读写效率,用字符流时写的数据都在流里需要刷新,字符流缓冲区则是写到缓冲区里,缓冲区可以写一行和读一行,不用每次都读一个写一个,并且不用new数组,这就是作用。
电脑底层操作的都是字节数据,所以用字节流是不需用刷新的,字节流缓冲区的作用也是可以读一行写一行
回复 使用道具 举报
缓冲区的作用就是你直接调用,类直接帮你封装好的,不用每次你自己开辟,当然你自己开辟一片缓冲区是一样的                缓冲区作用就是你定义多大读满了一次性存入或者输出
回复 使用道具 举报
简单点就是缓冲池,我理解的是缓冲就像一个池塘,流呢就是水龙头,缓冲的时候就可以源源不断的读写数据,而水龙头不行吧!{:2_40:}
回复 使用道具 举报
backin 发表于 2015-8-14 21:59
简单点就是缓冲池,我理解的是缓冲就像一个池塘,流呢就是水龙头,缓冲的时候就可以源源不断的读写数据,而 ...

说的很形象,赞一个~
回复 使用道具 举报
流就好像一个管道,池就像储存流文件的水塘;
回复 使用道具 举报
缓冲区内的流数据输出速率要比普通流内的数据速率要高
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马