成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java 控制臺信息保存到文件

RebeccaZhong / 2823人閱讀

摘要:為了調(diào)試需要,需要把輸出的信息重定向到文件進(jìn)行保留,同時為了方便,在上的輸出也得保留。在自定義的輸出流中把輸出的信息順手保存到文件上一下。

為了調(diào)試需要,需要把Java輸出的信息重定向到文件進(jìn)行保留,同時為了方便,在Console上的輸出也得保留。
原理很簡單,就是自定義輸出流,并使用System.setOutSystem.setErr進(jìn)行設(shè)置。在自定義的輸出流中把輸出的信息順手保存到文件上一下。
自定義一個用于分發(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) {
            }
        }
    }
}

自定義輸出流中只是重寫了write、flush和close方法,為了提高效率可以繼續(xù)重寫其他幾個寫多字節(jié)的write方法。所有這些方法都是對需要分發(fā)的輸出流進(jìn)行的操作,用了try,但為了避免循環(huán)調(diào)用catch之后沒在打印信息了。

使用起來也很簡單:

Javatry {
    // 創(chuàng)建一個文件流
    FileOutputStream fos = new FileOutputStream("console.log");
    // 先保存原來的標(biāo)準(zhǔn)輸出
    OutputStream cos = System.out;
    // 創(chuàng)建一個分發(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;
}

// 不出意外的話Console和文件里面都有Hello World~了
System.out.println("Hello World~");

打好收工~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64237.html

相關(guān)文章

  • 阿里云學(xué)生服務(wù)器操作攻略(超詳細(xì)全套完整圖文教程!菜鳥必看!)

    摘要:第一步如何以最低價格快速買到阿里云服務(wù)器如果我是學(xué)生,我如何通過買到價值的服務(wù)答用購買云服務(wù)器是阿里云學(xué)生專屬活動。除阿里云外,大多數(shù)云服務(wù)器公司例如西部等同配置云服務(wù)器的價格都在左右。例如云服務(wù)器地址等。第一步:如何以最低價格快速買到阿里云服務(wù)器?1.1 如果我是學(xué)生,我如何通過¥9.9買到價值¥117的服務(wù)?答:用¥9.9購買云服務(wù)器ECS是阿里云學(xué)生專屬活動。首先,你需要在阿里云官網(wǎng)注...

    FuisonDesign 評論0 收藏0
  • 阿里云ECS建網(wǎng)站(建站)超詳細(xì)全套完整圖文教程! [

    摘要:首先,你需要在阿里云官網(wǎng)注冊賬號。然后在阿里云官網(wǎng)首頁點擊校園扶持,經(jīng)學(xué)生認(rèn)證后便可購買每月的特價云服務(wù)器。圖幕布拍照如果對備案還有疑問,請參考阿里云官方文檔首次備案圖文引導(dǎo)。具體操作方式請看阿里云官方介紹鏡像部署或一鍵安裝包部署。第一步:如何以最低價格快速買到阿里云服務(wù)器?1.1 如果我是學(xué)生,我如何通過¥9.9買到價值¥117的服務(wù)? 答:用¥9.9購買云服務(wù)器ECS是阿里云學(xué)生專屬活動...

    andycall 評論0 收藏0
  • 阿里云ECS建站超詳細(xì)全套完整圖文教程

    摘要:首先,你需要在阿里云官網(wǎng)注冊賬號。然后在阿里云官網(wǎng)首頁點擊校園扶持,經(jīng)學(xué)生認(rèn)證后便可購買每月的特價云服務(wù)器。圖幕布拍照如果對備案還有疑問,請參考阿里云官方文檔首次備案圖文引導(dǎo)。具體操作方式請看阿里云官方介紹鏡像部署或一鍵安裝包部署。第一步:如何以最低價格快速買到阿里云服務(wù)器? 1.1 如果我是學(xué)生,我如何通過¥9.9買到價值¥117的服務(wù)? 答:用¥9.9購買云服務(wù)器ECS是阿里云學(xué)生專屬活...

    Yangyang 評論0 收藏0
  • 阿里云ECS建網(wǎng)站(建站)超詳細(xì)全套完整圖文教程!菜鳥必看!

    摘要:首先,你需要在阿里云官網(wǎng)注冊賬號。然后在阿里云官網(wǎng)首頁點擊校園扶持,經(jīng)學(xué)生認(rèn)證后便可購買每月的特價云服務(wù)器。圖幕布拍照如果對備案還有疑問,請參考阿里云官方文檔首次備案圖文引導(dǎo)。具體操作方式請看阿里云官方介紹鏡像部署或一鍵安裝包部署。第一步:如何以最低價格快速買到阿里云服務(wù)器?1.1 如果我是學(xué)生,我如何通過¥9.9買到價值¥117的服務(wù)? 答:用¥9.9購買云服務(wù)器ECS是阿里云學(xué)生專屬活動...

    Baoyuan 評論0 收藏0
  • Java編程思想》筆記12.通過異常處理錯誤

    摘要:一旦異常被拋出,就表明錯誤已無法挽回,也不能回來繼續(xù)執(zhí)行。這種在編譯時被強(qiáng)制檢查的異常稱為被檢查的異常。通過獲取原始異常。構(gòu)造器對于在構(gòu)造階段可能會拋出異常,并要求清理的類,最安全的做法是使用嵌套的子句。 點擊進(jìn)入我的博客 Java異常處理的目的在于通過使用少于目前數(shù)量的代碼來簡化大型、可靠的程序的生成,并且通過這種方式可以使你更自信:你的應(yīng)用中沒有未處理的錯誤。 12.1 概念 異...

    Vultr 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<