java缓冲流BufferWriter的原理跟提高效率原因

java缓冲流BufferWriter的原理跟提高效率原因,第1张

不带缓冲的流的工作原理:它读取到一个字节/字符,就向用户指定的路径写出去 读一个写一个 所以就慢了

带缓冲的流的工作原理:读取到一个字节/字符,先不输出,等凑足了缓冲的最大容量后一次性写出去,从而提高了工作效率

举个现实生活中的例子:假设你是一个快递员,不带缓冲的流就像快递公司给你一份快递你就跑一次,而带缓冲的流就像快递公司给你一份快递,你先不去,等攒攒多一起送,试想一下,是不是效率提高了?

FileReader和FileWriter都是继承父类的方法。他们本身的类中没有重写父类的任何方法。实际上就是等价于他们的父类outputStreamWriter,inputSteamReader至于它们存在的意义只是为了方便理解,一看就知道是用来写入字符文件的类!!!FileWriter很明显是针对文件的封装PrintWriter则更普遍一点而在写文件时我认为PrintWriterout=newPrintWriter(newBufferedWriter(newFileWriter(filename)))比较好点PrintWriter提供print系方法BufferedWriter提供缓冲,用以加速FileWriter用于写文件FileWriter类/FileReader类:用于对字符文件的读写的便捷的结点流类,使用时最好用BufferedReader/BufferedWriter对其进行包装。PrintStream类(如System.out):格式化打印输出字节数据的流,该类提供的print[ln]()方法可格式化打印输出各种类型的数据(包括类对象),它使用平台的默认字符编码将所有字符都转换为字节打印输出(写入)。在需要写入字符而不是写入字节的情况下,应该使用PrintWriter类。

输出内容到文件最好用打印流PrintWriter/PrintStream

你那种方法不行

把BufferedWriter改成下面的方法就行了

PrintWriter bfWriter=new PrintWriter(writer)

bfWriter.println(s)

你关流的时候只用关最外层的BufferedWriter和BufferedReader就OK了,里面的字符流,字节流都一并给关掉了!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11593904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存