所以,FileWriter和BufferedWriter的真正区别在哪

网上关于两者区别的内容挺多的,但很多表述都及其不准确,很容易被误导。不过好在也有些厉害的博主做了很细致的分析,这里我总结了一下,加上自己的思考,这里贴出“标准答案”,欢迎讨论!

  1. FileWriter和BufferWriter写入的都是字符流
  2. FileWriter和BufferWriter都有缓冲区,FileWriter的缓冲区大小是8192个字节,BufferWriter缓冲区大小是8192个字符(说两者的区别在于BufferWriter有缓冲区而FileWriter没有缓冲区的是在放屁!)
  3. FileWriter和BufferWriter调用write方法时都没有真正往硬盘里写数据,存入的都是缓冲区,只有调用flush或者close时才会刷新缓冲区并写入硬盘
  4. FileWriter每次调用write()方法,就会调用一次OutputStreamWriter中的write()方法,而BufferedWriter只有在缓冲区满了才会调用OutputStreamWriter中的write()方法。仔细看OutputStreamWriter方法介绍,它是用于给字符转码的,并且会在缓冲区累积。这两句话是重点了,FileWriter每调用一次write就会进行一次转码,而BufferedWriter只有在缓冲区满了才会转码,这才是BufferedWriter高效的真正原因;在缓冲区累积则代表他们并不是write一次就输出,而是flush或者close才进行写入硬盘(有些人说FileWriter每执行一次write就进行一次写操作,而BufferWriter缓冲区满了才执行写操作也是在放屁!)

有两篇很好的博客可以看一看
https://www.cnblogs.com/xjyh/p/4529809.html
https://www.jianshu.com/p/49b23f49814c

所以,FileWriter和BufferedWriter的真正区别在哪相关推荐

  1. FileWriter和BufferedWriter用处,区别

    File file = new File("d:/test2.txt");try{FileWriter fw = new FileWriter(file);BufferedWrit ...

  2. writer在java中的意思_Java在FileWriter和BufferedWriter之间的区别

    小编典典 如果您使用BufferedWriter则效率更高 在刷新/关闭之间有多次写入 与缓冲区大小相比,写操作较小. 在您的示例中,您只有一次写入,因此BufferedWriter只会增加您不需要的 ...

  3. java文本写入方法(PrintStream,FileWriter,BufferedWriter)

    PrintStream(字节打印流) PrintStream 是打印输出流,它继承于FilterOutputStream. PrintStream 永远不会抛出 IOException:它产生的IOE ...

  4. filewriter 写入html,分别用FileWriter和BufferedWriter往文件中写入

    import java.io.*; import java.util.Random; public class Exer6_4 { public static void UseFileWriter() ...

  5. Java IO(五)——字符流进阶及BufferedWriter、BufferedReader

    一.字符流和字节流的区别 拿一下上一篇文章的例子: 复制代码 复制代码 1 package com.demo.io; 2 3 import java.io.File; 4 import java.io ...

  6. Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter

    Java IO流学习总结四:缓冲流-BufferedReader.BufferedWriter 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/det ...

  7. Java-Java I/O 字节流之BufferedReader/BufferedWriter

    概述 Reader InputStreamReader FileReader and BufferedReader Writer OutputStreamWriter FileWriter and B ...

  8. java缓冲流,BufferedReader,BufferedWriter 详解

    缓冲流,BufferedReader,BufferedWriter 1)BufferedReader,BufferedWriter是更高级的流,二者的源和目的地必须是字符输入流和字符输出流.如果把字符 ...

  9. java结果写入html,java - 将长字符串写入HTML文件,InputStream vs FileWriter vs BufferedReader - 堆栈内存溢出...

    我对执行此操作的最佳方法有些困惑. 我在SO上看到了很多示例,许多答案有不同的解决方案. 因此,我想知道将非常长的字符串写入新的html文件的最有效方法(即,从字符串中生成html文件). 并且真的可 ...

  10. JavaIO BufferedReader和BufferedWriter介绍和实例

    BufferedReader和BufferedWriter简介 为了提高字符流读写的效率,引入了缓冲机制,进行字符批量的读写,提高了单个字符读写的效率.BufferedReader用于加快读取字符的速 ...

最新文章

  1. 用好这几款炼丹利器,调参从此得心应手
  2. Hadoop Hive迁移至MaxCompute
  3. 【转:SAP PS】 创建项目Project
  4. .net调用c++方法时如何释放c++中分配的内存_C/C++编程笔记:C语言编程知识要点总结!大一C语言知识点(全)...
  5. 弹出框 每次打开 滚动条置顶_微信置顶文字怎么弄?微信置顶一句话教程
  6. python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...
  7. solaris下修改 IPMP 配置
  8. Rails下cloud datastore的使用
  9. leetcode - 1025. 除数博弈
  10. 2016版系统集成项目管理工程师下午案例分析考试范围
  11. 基于主机的入侵检测优缺点_如何建立我们的网络防线?入侵检测,确保我们的网络安全...
  12. springboot 双缓存设计与使用
  13. Python 数据科学手册 5.6 线性回归
  14. wsimport 的使用问题
  15. (一〇二)静态库(.a)的打包
  16. 论文笔记_S2D.02-2013-CVPR-结合三维场景重建和类别分割
  17. 组织化视角的智慧城市
  18. 华硕笔记本电池软件_成色配置都还不错的二手华硕7代 i5 笔记本电脑 只卖1599元 想要的 快进来看看...
  19. 谈谈如何提升工作效率,需要从这4方面入手!
  20. 浙大玉泉校区路由器L2TP设置(极路由1s)

热门文章

  1. week15-作业题--字符串(hash、字典树、KMP)
  2. BZOJ 1260 paint
  3. 计算机实数表示法---浮点数(一)
  4. 博士的一天(备受打击版本)
  5. 计算机一级三维饼图,计算机考试excel制作复合饼图的方法
  6. 衣服的尺寸S、M、L、XL、XXL分别表示的型号大小顺序是什么?
  7. 微信大改版,时隔4年再次华丽转身。
  8. endnote快捷标注参考文献
  9. windows: 关于MsMpEng.exe导致“弹出USB大容量存储设备时出问题”
  10. Java中frame和panel区别,JFrame 和JPanel 的关系-区别(学习笔记)