BufferedWriter类的writeLine方法

时间:2015-12-15 15:09:35

标签: java

为什么BufferedReader类有readLine()方法,但BufferedWriter类没有writeLine(String)方法?现在我们必须write(str + "\n")write(str)newLine()

2 个答案:

答案 0 :(得分:9)

通过javadocs阅读我没有看到为什么没有提供writeLine()方法的任何具体原因。使用提供的write方法,BufferedWriter将在写入之前缓冲字符以提高效率。提供新的writeLine()方法不会添加任何值,因为此虚构的writeLine方法中提供的字符流将仅在缓冲区已满时进行缓冲和写入。

您可以切换到PrintWriter类而不是BufferedWriter,因为它提供了println(String str)方法,可用于编写字符串和换行符。但是与BufferedWriter相比,这是低效的,只有当你希望输出文件在调用println()方法时立即写入字符串时才更好。

对于here中提到的BufferedWriter类,最佳方法是使用write()newLine()方法。

要利用BufferedWriter的优势并访问println()方法,您可以按照javadocs中的建议执行以下操作:

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
out.println("Hello World!");

答案 1 :(得分:0)

来自https://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html

  

提供了一个newLine()方法,该方法使用平台自己的由系统属性line.separator定义的行分隔符概念。并非所有平台都使用换行符('\ n')来终止行。因此,调用此方法终止每条输出行比直接编写换行符更重要。