摘要:為了調(diào)試需要,需要把輸出的信息重定向到文件進(jìn)行保留,同時(shí)為了方便,在上的輸出也得保留。在自定義的輸出流中把輸出的信息順手保存到文件上一下。
為了調(diào)試需要,需要把Java輸出的信息重定向到文件進(jìn)行保留,同時(shí)為了方便,在Console上的輸出也得保留。
原理很簡(jiǎn)單,就是自定義輸出流,并使用System.setOut和System.setErr進(jìn)行設(shè)置。在自定義的輸出流中把輸出的信息順手保存到文件上一下。
自定義一個(gè)用于分發(fā)的輸出流:
DistributOutputStream.java
Javapublic class DistributOutputStream extends OutputStream { private OutputStream[] outputStreams = null; public DistributOutputStream(OutputStream[] outputStreams) { super(); this.outputStreams = outputStreams; } @Override public void write(int v) throws IOException { for (OutputStream os : outputStreams) { try { os.write(v); } catch (IOException e) { } } } @Override public void close() throws IOException { for (OutputStream os : outputStreams) { try { os.close(); } catch (IOException e) { } } } @Override public void flush() throws IOException { for (OutputStream os : outputStreams) { try { os.flush(); } catch (IOException e) { } } } }
自定義輸出流中只是重寫(xiě)了write、flush和close方法,為了提高效率可以繼續(xù)重寫(xiě)其他幾個(gè)寫(xiě)多字節(jié)的write方法。所有這些方法都是對(duì)需要分發(fā)的輸出流進(jìn)行的操作,用了try,但為了避免循環(huán)調(diào)用catch之后沒(méi)在打印信息了。
使用起來(lái)也很簡(jiǎn)單:
Javatry { // 創(chuàng)建一個(gè)文件流 FileOutputStream fos = new FileOutputStream("console.log"); // 先保存原來(lái)的標(biāo)準(zhǔn)輸出 OutputStream cos = System.out; // 創(chuàng)建一個(gè)分發(fā)流分發(fā)到文件流和標(biāo)準(zhǔn)輸出 DistributOutputStream osc = new DistributOutputStream(new OutputStream[] { fos, cos }); // 分發(fā)流的打印方式 PrintStream ps = new PrintStream(osc); // 設(shè)置到Err和Out System.setErr(ps); System.setOut(ps); } catch (Exception e) { e.printStackTrace(); return; } // 不出意外的話(huà)Console和文件里面都有Hello World~了 System.out.println("Hello World~");
打好收工~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/64237.html
摘要:第一步如何以最低價(jià)格快速買(mǎi)到阿里云服務(wù)器如果我是學(xué)生,我如何通過(guò)買(mǎi)到價(jià)值的服務(wù)答用購(gòu)買(mǎi)云服務(wù)器是阿里云學(xué)生專(zhuān)屬活動(dòng)。除阿里云外,大多數(shù)云服務(wù)器公司例如西部等同配置云服務(wù)器的價(jià)格都在左右。例如云服務(wù)器地址等。第一步:如何以最低價(jià)格快速買(mǎi)到阿里云服務(wù)器?1.1 如果我是學(xué)生,我如何通過(guò)¥9.9買(mǎi)到價(jià)值¥117的服務(wù)?答:用¥9.9購(gòu)買(mǎi)云服務(wù)器ECS是阿里云學(xué)生專(zhuān)屬活動(dòng)。首先,你需要在阿里云官網(wǎng)注...
摘要:首先,你需要在阿里云官網(wǎng)注冊(cè)賬號(hào)。然后在阿里云官網(wǎng)首頁(yè)點(diǎn)擊校園扶持,經(jīng)學(xué)生認(rèn)證后便可購(gòu)買(mǎi)每月的特價(jià)云服務(wù)器。圖幕布拍照如果對(duì)備案還有疑問(wèn),請(qǐng)參考阿里云官方文檔首次備案圖文引導(dǎo)。具體操作方式請(qǐng)看阿里云官方介紹鏡像部署或一鍵安裝包部署。第一步:如何以最低價(jià)格快速買(mǎi)到阿里云服務(wù)器?1.1 如果我是學(xué)生,我如何通過(guò)¥9.9買(mǎi)到價(jià)值¥117的服務(wù)? 答:用¥9.9購(gòu)買(mǎi)云服務(wù)器ECS是阿里云學(xué)生專(zhuān)屬活動(dòng)...
摘要:首先,你需要在阿里云官網(wǎng)注冊(cè)賬號(hào)。然后在阿里云官網(wǎng)首頁(yè)點(diǎn)擊校園扶持,經(jīng)學(xué)生認(rèn)證后便可購(gòu)買(mǎi)每月的特價(jià)云服務(wù)器。圖幕布拍照如果對(duì)備案還有疑問(wèn),請(qǐng)參考阿里云官方文檔首次備案圖文引導(dǎo)。具體操作方式請(qǐng)看阿里云官方介紹鏡像部署或一鍵安裝包部署。第一步:如何以最低價(jià)格快速買(mǎi)到阿里云服務(wù)器? 1.1 如果我是學(xué)生,我如何通過(guò)¥9.9買(mǎi)到價(jià)值¥117的服務(wù)? 答:用¥9.9購(gòu)買(mǎi)云服務(wù)器ECS是阿里云學(xué)生專(zhuān)屬活...
摘要:首先,你需要在阿里云官網(wǎng)注冊(cè)賬號(hào)。然后在阿里云官網(wǎng)首頁(yè)點(diǎn)擊校園扶持,經(jīng)學(xué)生認(rèn)證后便可購(gòu)買(mǎi)每月的特價(jià)云服務(wù)器。圖幕布拍照如果對(duì)備案還有疑問(wèn),請(qǐng)參考阿里云官方文檔首次備案圖文引導(dǎo)。具體操作方式請(qǐng)看阿里云官方介紹鏡像部署或一鍵安裝包部署。第一步:如何以最低價(jià)格快速買(mǎi)到阿里云服務(wù)器?1.1 如果我是學(xué)生,我如何通過(guò)¥9.9買(mǎi)到價(jià)值¥117的服務(wù)? 答:用¥9.9購(gòu)買(mǎi)云服務(wù)器ECS是阿里云學(xué)生專(zhuān)屬活動(dòng)...
摘要:一旦異常被拋出,就表明錯(cuò)誤已無(wú)法挽回,也不能回來(lái)繼續(xù)執(zhí)行。這種在編譯時(shí)被強(qiáng)制檢查的異常稱(chēng)為被檢查的異常。通過(guò)獲取原始異常。構(gòu)造器對(duì)于在構(gòu)造階段可能會(huì)拋出異常,并要求清理的類(lèi),最安全的做法是使用嵌套的子句。 點(diǎn)擊進(jìn)入我的博客 Java異常處理的目的在于通過(guò)使用少于目前數(shù)量的代碼來(lái)簡(jiǎn)化大型、可靠的程序的生成,并且通過(guò)這種方式可以使你更自信:你的應(yīng)用中沒(méi)有未處理的錯(cuò)誤。 12.1 概念 異...
閱讀 3338·2021-11-15 11:37
閱讀 1177·2021-11-02 14:45
閱讀 3962·2021-09-04 16:48
閱讀 3653·2019-08-30 15:55
閱讀 818·2019-08-23 17:53
閱讀 1053·2019-08-23 17:03
閱讀 2163·2019-08-23 16:43
閱讀 2250·2019-08-23 16:22