栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java中,使用BufferedWriter附加到文件有什么好处?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java中,使用BufferedWriter附加到文件有什么好处?

在Javadoc中提供了关于这个问题的一个合理的讨论:

通常,Writer立即将其输出发送到基础字符或字节流。除非需要即时输出,否则建议将BufferedWriter包装在其write()操作可能会很昂贵的所有Writer周围,例如FileWriters和OutputStreamWriters。例如,

 PrintWriter out    = new PrintWriter(new BufferedWriter(new     FileWriter("foo.out")));

将缓冲PrintWriter的输出到文件。如果不进行缓冲,则每次调用print()方法都会导致将字符转换为字节,然后将这些字节立即写入文件中,这可能会非常低效。

如果您一次写大块的文本(例如整行),那么您可能不会注意到有什么不同。但是,如果您有很多代码一次附加一个字符,那么a的

BufferedWriter
效率会更高。

编辑

根据以下安德鲁的评论,

FileWriter
实际使用了自己的固定大小的1024字节缓冲区。通过查看源代码可以确认这一点。的
BufferedWriter

来源,在另一方面,示出其使用和8192字节的缓冲区大小(默认值),其可以通过用户的任何其它期望的大小来配置。因此,似乎
BufferedWriter
vs
的好处
FileWriter
仅限于:

  • 较大的默认缓冲区大小。
  • 能够覆盖/自定义缓冲区大小。

为了进一步搅浑水,在Java 6的实现的

OutputStreamWriter
实际委托给StreamEnprer,使用它自己的缓冲区8192个字节的默认大小。而且该
StreamEnprer
缓冲区是用户可配置的,尽管没有办法通过封闭直接访问它
OutputStreamWriter



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497139.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号