FileWriter进行write()操作时,先将数据写入缓冲区,再刷新写入,为什么还要用BufferedWriter?
1个回答
展开全部
BufferedWriter bw = new BufferedWriter(new FileWriter( "filename "));
一般写文件时经常这么用,表示加了一个缓冲,缓冲写满后在将数据写入硬盘,这样做极大的提高了性能
如果单独使用 FileWriter每写一个数据,硬盘就有一个写动作,频繁写硬盘,对性能有影响。
一般写文件时经常这么用,表示加了一个缓冲,缓冲写满后在将数据写入硬盘,这样做极大的提高了性能
如果单独使用 FileWriter每写一个数据,硬盘就有一个写动作,频繁写硬盘,对性能有影响。
追问
FileWriter也是要先写入默认缓冲区,flush后再写入硬盘的,flush之前数据都在内存中,原理和BufferedWriter一样,为什么Java设计者不在FileWriter构造函数里传递缓冲区大小直接指定缓冲区写入,不就OK了吗?
追答
FileWriter的默认缓冲区是非常小的,如果你写入一个略大于此缓冲区的数据,需要两次写入硬盘的过程,而如果用BufferedWriter只需一次。
最后至于为什么设计者这么设计,还未参透。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询