今天有位同事在使用System.err和System.out遇上了一些小問題.
#看了些資料總結下:
1#. JDK文件對兩者的解釋:
out: 「標準」輸出流。此流已開啟並準備接受輸出資料。通常,此流對應於顯示器輸出或由主機環境或使用者指定的另一個輸出目標。
err: 「標準」錯誤輸出流。此流已開啟並準備接受輸出資料。通常,此流對應於顯示器輸出或由主機環境或使用者指定的另一個輸出目標。依照慣例,此輸出流用於顯示錯誤訊息,或顯示那些即使使用者輸出流(變數out
的值)已經重定向到通常不會被連續監視的某一檔案或其他目標,也應該立刻引起用戶注意的其他資訊。
2.out和err的一個區別是,out往往是帶有快取的,而err沒有快取(預設設置,可以改變)。所以如果你用標準出錯打印出來的東西可以馬上顯示在屏幕,而標準輸出打印出來的東西可能要再積累幾個字符才能一起打印出來。如果你在應用中混用標準輸出和標準出錯就可能看到這個問題。
測試程式碼:
public class Test2 {static{ System.out.println("1"); }public static void main(String[] args) { System.err.println("2");new Test2(); }public Test2() { System.out.println("3"); } }
測試結果: 1,3的位置相對不變,2的位置隨機出現.盡量避免混用!
3.如果使用了log4j的日誌記錄,System.err會被記入日誌,System.out不會
# ps:列印System.err在eclipse是紅色的。 System.out是藍色的。
以上是使用System.err和System.out的一些問題.的詳細內容。更多資訊請關注PHP中文網其他相關文章!