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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张宏祚 中级黑马   /  2013-10-11 14:11  /  1276 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

相比较于字节流,字符流会把数据暂时放在内存的缓冲区中,通过flush来进行输送,那么加上了buffered的流,也是有了一个缓冲区,这两个缓冲区之间有什么不同么?

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

5 个回复

倒序浏览
buffered流的存在是为了提高效率,不论是字符还是字节,我觉得对于字符流来说,他们是对缓冲区的容纳量不同,对于小数据,字符流不需用那么大的缓冲区,对于大数据,则就有必要使用buffered流来操作。
(求技术分)
回复 使用道具 举报
dolphin 发表于 2013-10-11 14:33
buffered流的存在是为了提高效率,不论是字符还是字节,我觉得对于字符流来说,他们是对缓冲区的容纳量不同 ...

哥们,是不是这个意思,这两个流的缓冲区,都是在内存里,那大小的区别是什么啊,还有bufferedWriter的话,会不会两个缓冲区作用冲突了?
回复 使用道具 举报
亲,我觉着其实是这么回事,
(1)字符流的缓冲区存在的原因是由于字符流中融合了编码集,而字符流的读写方法实质上都是在调用字节流的读写方法。我们有必要将读取出来的这些字节存入到一个缓冲区中,然后查询编码表,返回相应的字符。
(2)Buffered包装流缓冲区存在的原因是我们想要更加简便的操作我们读取的数据,BufferedReader的增强方法是readLine(),可以一次性读取一行,原理是将查表之后获取的字符写入到一个数组中去,然后当遇到换行的时候一次性打印输出一行。
(3)因此两个缓冲区的作用是不同的,他们的功能并不冲突。

评分

参与人数 1技术分 +1 收起 理由
To + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
bird_not_fat 发表于 2013-10-11 17:46
亲,我觉着其实是这么回事,
(1)字符流的缓冲区存在的原因是由于字符流中融合了编码集,而字符流的读写方 ...

哦,看了你的回答,感觉很有道理!
回复 使用道具 举报
To 金牌黑马 2013-10-12 11:19:08
地板
楼主你好,如果问题已解决请将帖子状态改为提问结束,如果未解决请继续提问,谢谢合作。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马