我真的很困惑各种io类的目的,例如,如果我们有BufferedWriter,为什么我们需要一个PrintWriter?
BufferedReader reader = new BufferedReader(new FileReader(file)); String line = null; while(s=br.readline()!=null) { PrintWriter fs = new PrintWriter(new FileWriter(file)); fs.println(s); }
如果BufferedWriter无法帮忙?我只是不明白这些io课程之间的区别,有人可以解释一下吗?
解决方法
他们彼此无关.事实上,除了临时转换System.out之外,我很少使用PrintWriter.但无论如何.
BufferedWriter,如BufferedReader / BufferedInputStream / BufferedOutputStream,只是使用内存缓冲区(您可以指定大小)或接受默认值来装饰封闭的Writer.当写入基于网络或文件的慢速写入器时,这非常有用. (Stuff在内存中提交,仅偶尔在磁盘上提交)通过在内存中缓冲,速度大大提高 – 尝试编写只用FileWriter写入10 mb文件的代码,然后将其与BufferedWriter相比较.
那就是BufferedWriter.它引入了一些便利方法,但大多只提供了这个内存缓冲区.
PrintWriter主要是一个简单的装饰器,为String,float等各种类型添加一些特定的写方法,因此您不必将所有内容转换为原始字节.
编辑:
This已经出现了