簡體   English   中英

BufferedWriter類的writeLine方法

[英]BufferedWriter class writeLine method

為什么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!");

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

提供了一個newLine()方法,它使用平台自己的行分隔符概念,由系統屬性line.separator定義。 並非所有平台都使用換行符('\\ n')來終止行。 因此,調用此方法終止每個輸出行比直接編寫換行符更為可取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM