在api中,java表示,'除非需要立即輸出,否則建議在其write()操作可能代價高昂的Writer周圍包裝BufferedWriter,例如FileWriters和OutputStreamWriters'.I多次嘗試比較,事實證明,如果我不使用PrintWriter來包裝BufferedWriter,則花費的時間會更少。這是否意味着,我不必在'控制檯'上包裝? 有我簡單的代碼,比較兩者。我應該使用PrintWriter來包裝BufferedWriter嗎?
public static void PrintWrite(String path, String content) throws IOException {
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(path)));
pw.write(content);
pw.close();
}
public static void BufferedWrite(String path, String content) throws IOException {
BufferedWriter bw = new BufferedWriter(new FileWriter(path));
bw.write(content);
bw.close();
}
private static void main(String[] args)
{
String s = "";
String path = "D:\\out.txt";
for (int i = 0; i < 10000; i++)
{
s += "kjuatlistened";
}
try
{
long start = System.nanoTime();
//PrintWrite(path,s);
BufferedWrite(path,s);
long end = System.nanoTime();
Printer.println("done,elapse " + (end - start) + " s");
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
那麼,從我已閱讀和收集,如果你需要更多的功能,然後包裝類。如果它在沒有包裝類的情況下工作,並且你不需要包裝類可以給你的其他方法,那麼不要包裝類。我已經閱讀了很多這種混合的想法,但是從我收集的包裝類的角度來看,只有在需要包裝類提供的更多功能時才能完成(大部分)。 –
不,道格hauf,我只是ocnsider爲什麼jdk說,從我的角度來說,更好的做法可能與不安全的事情有關,並且因爲在我的測試中,'換行'使用更多時間...所以...我發佈了這個問題... – Telerik