用Writer打印內容到console或者瀏覽器時,必須要考慮到flush。如果你用writer打印出很多內容,而程序結束時,writer如果沒有被flush則用戶完全看不到或者不會看到完整的信息。例如:
public static void main(String[] args) {
PrintWriter log = new PrintWriter(System.out);
log.println("Hello, Jack")
}
運行后,沒有任何顯示。這是因為"Hello, Jack"被buffer了,至少兩種方法可以解決這個問題
(1)PrintWriter log = new PrintWriter(System.out, true);
設置writer為auto flush, 每一個print/println的內容被即刻寫到屏幕上。優點是即時性,缺點是效能低;適合用于打印到屏幕或者瀏覽器
(2)log.flush(); 或 log.close() - Writer.close()里面會flush一下。
優點是效能高,缺點不即時。 適合用于寫到文件
新聞熱點
疑難解答