我真的很困惑各种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课程之间的区别,有人可以解释一下吗?
他们彼此无关.事实上,我很少使用,PrintWriter除了System.out暂时转换.但无论如何.
BufferedWriter,像BufferedReader/ BufferedInputStream/ BufferedOutputStream只是Writer用内存缓冲区装饰(你可以指定大小)或接受默认值.当写入基于网络或文件的慢速写入器时,这非常有用.(例如,东西在内存中提交,偶尔也会在磁盘上提交)通过在内存中缓冲,速度会大大提高 - 尝试编写代码写入10 mb文件的代码,FileWriter然后将其与BufferedWriter周围的内容进行比较.
那就是BufferedWriter.它引入了一些便利方法,但大多只提供了这个内存缓冲区.
PrintWriter大多是简单的装饰,增加了一些具体的写入方法对不同类型的像String,float等等,所以你不必事事转换为原始字节.
编辑:
这已经出现了