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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

FileWriter 中需要调用flush 方法将缓冲区的字符写入文件,说明FileWriter 是有缓冲区的。而BufferedWriter 中也有缓冲区,那么两者的缓冲区有什么不同呢?

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

18 个回复

倒序浏览
FileWriter:你每写一个数据,硬盘就有一个写动作,性能极差
BufferedWriter: 加了一个缓冲,缓冲写满后在将数据写入硬盘这样做极大的提高了性能
在BufferedWriter提供了一个特殊的方法
void newLine() 写入一个新行
原因在于Windows Linux换行符号不一样
Windows \r\n   Linux \n
newLine()方法,具有跨平台性

点评

原来如此,很好的啊  发表于 2014-6-17 12:46

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
百度了一番,发现好多人都在问这样的问题,求大神解答。
回复 使用道具 举报
都是缓冲区,没什么区别,知识说BufferedWriter 功能更强大
回复 使用道具 举报
我觉着缓冲区本身是没有什么不同的,但是提供的功能有大小之分 ^^
回复 使用道具 举报
套用毕老师的例子
相信你会懂的

水一滴一滴的往下流 ,用嘴一滴一滴的接着好,还是用水杯接满后一饮而尽爽?
然后你在看看二楼的回答 应该就明白了!!

点评

明白了哈哈  发表于 2014-6-17 12:48
回复 使用道具 举报
zhohao 中级黑马 2014-6-15 16:36:54
7#
效率不同,BufferedWriter效率高一些
回复 使用道具 举报
相当于装饰
回复 使用道具 举报
友来友网 发表于 2014-6-15 13:59
都是缓冲区,没什么区别,知识说BufferedWriter 功能更强大

确实是,我看了一下java的源码,发现两者是独立的buffer 。
回复 使用道具 举报
zhohao 发表于 2014-6-15 16:36
效率不同,BufferedWriter效率高一些

感觉是对Writer和Reader的进一步优化。
回复 使用道具 举报
带缓冲区,而且方法好用。
回复 使用道具 举报
怎么说呢。
自定义缓冲区 可以自定义 缓存数组的字节长度 , 可以使1024  也可以是8192 但是不能过大  , 会造成内存溢出
而buffer缓冲区呢  首先 new BufferedRead( new  InputStreamReader(new FileReader))
就是说bufferedreader 必须跟 字节通向字符的桥梁一起使用 ,  同时 bufferedreader 缓冲区大小 默认是8192 个

点评

我看的不是很懂  发表于 2014-6-17 12:49
回复 使用道具 举报
同求,感觉没有回答的很到位的啊
回复 使用道具 举报
进来学习下
回复 使用道具 举报
墓____夜 发表于 2014-6-17 09:42
怎么说呢。
自定义缓冲区 可以自定义 缓存数组的字节长度 , 可以使1024  也可以是8192 但是不能过大  ,  ...

new BufferedRead( new  InputStreamReader(new FileReader))
哥们 这句好像有点问题吧  BufferedReader本来就是字符缓冲流  最后的FileReader不能用InputStreamReader这样的转换流
回复 使用道具 举报
加个BufferedWriter便于操作FileWter写入的文件吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马