據我所知,out和err是同一類PrintStream
。有人可以告訴我他們有什麼不同嗎?他們如何改變他們的行爲?system.out與system.err之間的區別
回答
它們分別轉到系統stdout和stderr流。在大多數操作系統中,這些是不同的,可以發送到不同的地方。例如,如果你的程序的輸出被另一個程序解析,這可能是有用的 - 如果它需要報告錯誤,stderr通常會是更好的地方,因爲你可能已經設置好了它以引起人們的注意。
差異並不明顯,因爲默認情況下,在大多數操作系統中,它們被寫入控制檯(同一文件,控制檯也是文件)。但是,您可以將System.out
寫入文件,並將System.err
寫入控制檯(顯示器) - 這只是一種情況。
寫發出兩個System.out和System.err的消息的程序,試試這個:
java MyProgram > out.txt 2> err.txt # On a *NIX.
System.out
消息會去到out.txt和System.err
消息會去err.txt。要記住的基本點是將System.out和System.err視爲文件流(這就是它們),而不是在監視器上輸出的機制,這是我認爲的初學者。
+1爲重定向示例。 – 2010-05-25 03:06:28
他們有相同的行爲。但首先(out)是對標準輸出流的引用(默認情況下它是一個控制檯)。第二個(err)是對標準錯誤流的引用(默認情況下它也是一個控制檯)。
但是,如果你想,你可以改變一個引用,或者你可以添加一個包裝器/過濾器到他們每個人。
我的IDE,例如,示出了從紅色err
流輸出。
的System.out將輸出發送到標準輸出流。 System.err將輸出發送到標準錯誤流。 默認情況下這兩個寫入控制檯。
不過好處是,這兩個流可以被重定向,所以你可以有System.out的輸出重定向到正常的日誌文件,你可以有重定向到錯誤日誌的輸出System.err的。
- 1. 同步System.out&System.err
- 2. System.err的VS的System.out
- 3. 重定向System.out和System.err
- 4. java:「final」System.out,System.in和System.err?
- 5. 「或」與「||」之間的區別?
- 6. ~~與Math.floor之間的區別()
- 7. 爲什麼Eclipse中的System.err比System.out慢?
- 8. 將System.out和System.err重定向到slf4j
- 9. log4j 1.2.15和重定向System.out和System.err
- 10. PAM與Metis分區之間的區別
- 11. 與別名之間的區別
- 12. 時間()與stime()之間的區別
- 13. 關注與責任之間的區別(即SRP和SoC之間的區別)?
- 14. 命令與ScriptBlock之間的區別Powershell
- 15. justify-content與align-content之間的區別
- 16. 層次與層次之間的區別
- 17. javax.servlet-api.jar與servlet-api.jar之間的區別
- 18. Python:time.time()與time.clock()之間的顯着區別?
- 19. add_filter與add_action之間的區別
- 20. 並行流與CompletableFuture之間的區別
- 21. Clojure中-toString與.toString之間的區別
- 22. express.response.status()與response.sendStatus()之間的區別
- 23. 值與綁定之間的區別
- 24. 繼承ApiController與IHttpController之間的區別
- 25. StratifiedKFold與train_test_split分層之間的區別
- 26. 會員與物業之間的區別?
- 27. ER圖與EER圖之間的區別
- 28. 查找與關係之間的區別
- 29. RLMRealm與Realm之間的區別
- 30. Composer.phar與|之間的區別和||
http://en.wikipedia.org/wiki/Standard_streams – stacker 2010-05-24 13:18:46