为什么BufferedReader
类有一个readLine()
方法,但是BufferedWriter
类没有writeLine(String)
方法?现在我们要做的write(str + "\n")
还是write(str)
和newLine()
。
发布于 2019-05-17 15:20:29
来自https://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html
提供了一个newLine()方法,它使用平台自己的行分隔符概念,由系统属性line.separator定义。并非所有平台都使用换行符('\ n')来终止行。因此,调用此方法终止每个输出行比直接编写换行符更为可取。
发布于 2019-05-17 16:47:06
通过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!");
https://stackoverflow.com/questions/-100006746
复制相似问题