为什么需要PrintWriter?

7 java io printwriter

我真的很困惑各种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);
}
Run Code Online (Sandbox Code Playgroud)

如果BufferedWriter无法帮忙?我只是不明白这些io课程之间的区别,有人可以解释一下吗?

MJB*_*MJB 7

他们彼此无关.事实上,我很少使用,PrintWriter除了System.out暂时转换.但无论如何.

BufferedWriter,像BufferedReader/ BufferedInputStream/ BufferedOutputStream只是Writer用内存缓冲区装饰(你可以指定大小)或接受默认值.当写入基于网络或文件的慢速写入器时,这非常有用.(例如,东西在内存中提交,偶尔也会在磁盘上提交)通过在内存中缓冲,速度会大大提高 - 尝试编写代码写入10 mb文件的代码,FileWriter然后将其与BufferedWriter周围的内容进行比较.

那就是BufferedWriter.它引入了一些便利方法,但大多只提供了这个内存缓冲区.

PrintWriter大多是简单的装饰,增加了一些具体的写入方法对不同类型的像String,float等等,所以你不必事事转换为原始字节.

编辑:

已经出现了