为什么BufferedReader
类有一个readLine()
方法,但是BufferedWriter
类没有writeLine(String)
方法?现在我们要做的write(str + "\n")
还是write(str)
和newLine()
.
通过javadocs读取我没有看到为什么writeLine()
没有提供方法的任何具体原因.使用提供的write
方法,BufferedWriter将在写入之前缓冲字符以提高效率.提供新writeLine()
方法不会添加任何值,因为此虚构writeLine
方法中提供的字符流将仅在缓冲区已满时进行缓冲和写入.
您可以切换到PrintWriter类而不是BufferedWriter,因为它提供了println(String str)
可用于编写字符串和换行符的方法.但是与BufferedWriter相比,这是低效的,只有在希望输出文件在调用println()方法时立即写入字符串时才更好.
对于这里BufferedWriter
提到的类的原因,最好的方法是使用和方法.write()
newLine()
要利用方法的优点BufferedWriter
和访问println()
方法,您可以按照javadocs中的建议执行以下操作:
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out"))); out.println("Hello World!");