如何將java輸出打印到shell控制檯並同時在某個文件中打印?那可能嗎?將java輸出打印到文件
回答
你可以在你的程序開始包括以下行:
final PrintStream origout = System.out;
final PrintStream fileout = new PrintStream(file);
System.setOut(new PrintStream(new OutputStream() {
@Override
public void write(int b) throws IOException {
origout.write(b);
fileout.write(b);
}
}));
我把這個放在我的主要方法的開始,但我得到各種錯誤,包括未定義的構造函數等,我導入了所有適當的包。請幫助 – CodyBugstein 2013-02-03 20:22:28
我通過使用fileout替換新的OutputStream來實現它。但是,這導致我無法在控制檯中看到任何輸出,而只能在.txt文件中看到輸出。我怎樣才能輸出到兩個? – CodyBugstein 2013-02-03 20:31:31
您可以寫入控制檯。並寫入一個文件。你可以把它們分開,所以它們不依賴於彼此。
沒有一個API可以在我知道的同時執行這兩個API(不是說太多,寫一個應該是微不足道的)。
編輯:我誤解了嗎?你的意思是來自Java代碼還是隻是將java二進制文件的輸出傳送給控制檯和文件?在這種情況下,你可以這樣做:
java Main 2>&1 | tee -a Load.log
@downvoter:有什麼意見?您的反饋只能幫助我改進我的答案,或者說服我將其刪除,如果我只是明顯錯誤。 – 2011-04-17 21:07:47
這需要更多的解釋。這不僅僅是一個回答而是一個評論 – CodyBugstein 2013-02-03 20:17:23
您可以使用System.setOut()
將System.Out
重定向到自定義OutputStream
,該自定義將其輸出複製到控制檯和文件。
你能否詳細說明一下? – CodyBugstein 2013-02-03 20:15:47
最簡單的方法(因爲它不涉及真正的編程)是在Linux中使用三通命令,Mac OS X或Windows PowerShell中,像這樣:
java MyProg | tee outputfile.txt
這適用於任何編程語言,不只是Java。
- 1. 將輸出打印到文件中或不打印輸出?
- 2. 將功能打印到輸出文件
- 3. 將結果打印輸出到文件
- 4. 將python輸出打印到html文件
- 5. Java:將輸出打印到文本文件
- 6. 已將打印數據輸出到輸出文件
- 7. 輸出Spotfire'打印'到文本文件
- 8. 將文件名列表的輸出打印到文本文件
- 9. 將打印輸出寫入文件(python)
- 10. 打印php腳本輸出到文件
- 11. 使用Python打印輸出到文件
- 12. Unix打印機輸出到文件
- 13. 打印文件名到標準輸出
- 14. 打印apsrtable輸出到文件?
- 15. 打印輸出到文件使用grep
- 16. 打開文件,打印到標準輸出,追加到文件,並再次打印到標準輸出
- 17. 將Java對象打印到Javascript文件
- 18. python - 打印到stdout並將輸出重定向到文件
- 19. 如何將unicode文本打印到輸出文件?
- 20. 如何將Google測試輸出打印到文本文件?
- 21. 如何將for循環輸出打印到文本文件中?
- 22. 將輸出打印到Linux中的文本文件中
- 23. 程序沒有將部件打印到輸出文件中C++
- 24. 的Java打印輸出到CSV文件中
- 25. 在java中打印到多個輸出文件
- 26. 打印輸出在java中
- 27. java,打印輸出模式
- 28. Java-輸出不打印
- 29. 不打印到文件java
- 30. 輸入到打印輸出
大多數日誌工具支持這種事情。例如,使用Log4J添加ConsoleAppender和FileAppender將執行此操作。有人提到SLF4J--這是真的,儘管它只是一個門面。據我所知,你仍然需要配置它將在幕後使用的日誌工具。 – Nick 2011-04-17 18:12:10