FileWriter进行write()操作时,先将数据写入缓冲区,再刷新写入,为什么还要用BufferedWriter?
展开全部
BufferedWriter bw = new BufferedWriter(new FileWriter( "filename "));
一般写文件时经常这么用,表示加了一个缓冲,缓冲写满后在将数据写入硬盘,这样做极大的提高了性能
如果单独使用 FileWriter每写一个数据,硬盘就有一个写动作,频繁写硬盘,对性能有影响。
一般写文件时经常这么用,表示加了一个缓冲,缓冲写满后在将数据写入硬盘,这样做极大的提高了性能
如果单独使用 FileWriter每写一个数据,硬盘就有一个写动作,频繁写硬盘,对性能有影响。
追问
FileWriter也是要先写入默认缓冲区,flush后再写入硬盘的,flush之前数据都在内存中,原理和BufferedWriter一样,为什么Java设计者不在FileWriter构造函数里传递缓冲区大小直接指定缓冲区写入,不就OK了吗?
追答
FileWriter的默认缓冲区是非常小的,如果你写入一个略大于此缓冲区的数据,需要两次写入硬盘的过程,而如果用BufferedWriter只需一次。
最后至于为什么设计者这么设计,还未参透。
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询