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

資訊專欄INFORMATION COLUMN

JAVA IO源碼學(xué)習(xí)系列一(FilterInpuStream 和FilterOutputStrea

Flink_China / 1748人閱讀

摘要:源碼內(nèi)容過濾輸出流的父類,繼承自類似類本身只是簡單地重寫那些將所有請求傳遞給所包含輸出流的的所有方法。的子類可進(jìn)一步地重寫這些方法中的一些方法,并且還可以提供一些額外的方法和字段。

介紹

根據(jù)名稱就可以了解到過濾輸入輸出流是做什么用的,過濾,過濾是為了干嘛呢?前面我們介紹過了字節(jié)數(shù)組輸入輸出流,對于字節(jié)數(shù)組輸入輸出流,只提供了一些必要的讀取, 寫入標(biāo)記等方法或功能,這些是最基礎(chǔ)的,那么如果我們想將流根據(jù)指定的內(nèi)容寫入寫出的時候該咋辦呢?不能每次都自己來處理相應(yīng)的方法,這樣就比較麻煩了。所以就有了過濾的流;

FilterInpuStream and FilterOutputStream

過濾流是開發(fā)設(shè)計(jì)模式中裝飾器模式最典型的實(shí)現(xiàn)。通過裝飾過濾,實(shí)現(xiàn)增加不同的流操作的功能;

FilterInpuStream 源碼內(nèi)容

FilterInpuStream 是所有過濾類流的父類,繼承自InputStream,在類中定義了InputStream屬性內(nèi)容,即裝飾InputStream;FilterInputStream 類本身只是簡單地重寫那些將所有請求傳遞給所包含輸入流的 InputStream 的所有方法;

public
class FilterInputStream extends InputStream {
    //  要過濾的輸入流。
    protected volatile InputStream in;

    protected FilterInputStream(InputStream in) {
        this.in = in;
    }
    public int read() throws IOException {
        return in.read();
    }
    public int read(byte b[]) throws IOException {
        return read(b, 0, b.length);
    }
    public int read(byte b[], int off, int len) throws IOException {
        return in.read(b, off, len);
    }

    public long skip(long n) throws IOException {
        return in.skip(n);
    }
    public int available() throws IOException {
        return in.available();
    }

    public void close() throws IOException {
        in.close();
    }

    public synchronized void mark(int readlimit) {
        in.mark(readlimit);
    }

    public synchronized void reset() throws IOException {
        in.reset();
    }
    public boolean markSupported() {
        return in.markSupported();
    }
}
FilterOutputStream源碼內(nèi)容

過濾輸出流的父類,繼承自O(shè)utputStream,類似FilterInputStream,FilterOutputStream 類本身只是簡單地重寫那些將所有請求傳遞給所包含輸出流的 OutputStream 的所有方法。FilterOutputStream 的子類可進(jìn)一步地重寫這些方法中的一些方法,并且還可以提供一些額外的方法和字段。

public
class FilterOutputStream extends OutputStream {
      //要過濾的基礎(chǔ)輸出流。
    protected OutputStream out;

    public FilterOutputStream(OutputStream out) {
        this.out = out;
    }
    public void write(int b) throws IOException {
        out.write(b);
    }
    public void write(byte b[]) throws IOException {
        write(b, 0, b.length);
    }
    public void write(byte b[], int off, int len) throws IOException {
        if ((off | len | (b.length - (len + off)) | (off + len)) < 0)
            throw new IndexOutOfBoundsException();

        for (int i = 0 ; i < len ; i++) {
            write(b[off + i]);
        }
    }

    public void flush() throws IOException {
        out.flush();
    }

    public void close() throws IOException {
        try {
          flush();
        } catch (IOException ignored) {
        }
        out.close();
    }
總結(jié)

FilterInpuStream 和FilterOutputStream是過濾輸入輸出流的父類,具體需要過濾增加的附加功能由實(shí)現(xiàn)它們的子類去完成,具體內(nèi)容后面慢慢介紹;

最后還是召喚神獸
/**
 *                                         ,s555SB@@&                          
 *                                      :9H####@@@@@Xi                        
 *                                     1@@@@@@@@@@@@@@8                       
 *                                   ,8@@@@@@@@@B@@@@@@8                      
 *                                  :B@@@@X3hi8Bs;B@@@@@Ah,                   
 *             ,8i                  r@@@B:     1S ,M@@@@@@#8;                 
 *            1AB35.i:               X@@8 .   SGhr ,A@@@@@@@@S                
 *            1@h31MX8                18Hhh3i .i3r ,A@@@@@@@@@5               
 *            ;@&i,58r5                 rGSS:     :B@@@@@@@@@@A               
 *             1#i  . 9i                 hX.  .: .5@@@@@@@@@@@1               
 *              sG1,  ,G53s.              9#Xi;hS5 3B@@@@@@@B1                
 *               .h8h.,A@@@MXSs,           #@H1:    3ssSSX@1                  
 *               s ,@@@@@@@@@@@@Xhi,       r#@@X1s9M8    .GA981               
 *               ,. rS8H#@@@@@@@@@@#HG51;.  .h31i;9@r    .8@@@@BS;i;          
 *                .19AXXXAB@@@@@@@@@@@@@@#MHXG893hrX#XGGXM@@@@@@@@@@MS        
 *                s@@MM@@@hsX#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&,      
 *              :GB@#3G@@Brs ,1GM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B,     
 *            .hM@@@#@@#MX 51  r;iSGAM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8     
 *          :3B@@@@@@@@@@@&9@h :Gs   .;sSXH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:    
 *      s&HA#@@@@@@@@@@@@@@M89A;.8S.       ,r3@@@@@@@@@@@@@@@@@@@@@@@@@@@r    
 *   ,13B@@@@@@@@@@@@@@@@@@@5 5B3 ;.         ;@@@@@@@@@@@@@@@@@@@@@@@@@@@i    
 *  5#@@#&@@@@@@@@@@@@@@@@@@9  .39:          ;@@@@@@@@@@@@@@@@@@@@@@@@@@@;    
 *  9@@@X:MM@@@@@@@@@@@@@@@#;    ;31.         H@@@@@@@@@@@@@@@@@@@@@@@@@@:    
 *   SH#@B9.rM@@@@@@@@@@@@@B       :.         3@@@@@@@@@@@@@@@@@@@@@@@@@@5    
 *     ,:.   9@@@@@@@@@@@#HB5                 .M@@@@@@@@@@@@@@@@@@@@@@@@@B    
 *           ,ssirhSM@&1;i19911i,.             s@@@@@@@@@@@@@@@@@@@@@@@@@@S   
 *              ,,,rHAri1h1rh&@#353Sh:          8@@@@@@@@@@@@@@@@@@@@@@@@@#:  
 *            .A3hH@#5S553&@@#h   i:i9S          #@@@@@@@@@@@@@@@@@@@@@@@@@A.
 *
 *
 *    又看源碼,看你妹妹呀!
 */

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

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

相關(guān)文章

  • 我的阿里之路+Java面經(jīng)考點(diǎn)

    摘要:我的是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)。因?yàn)槲倚睦砗芮宄业哪繕?biāo)是阿里。所以在收到阿里之后的那晚,我重新規(guī)劃了接下來的學(xué)習(xí)計(jì)劃,將我的短期目標(biāo)更新成拿下阿里轉(zhuǎn)正。 我的2017是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕JDK源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)offer。然后五月懷著忐忑的心情開始了螞蟻金...

    姘擱『 評論0 收藏0
  • JAVA IO源碼學(xué)習(xí)系列(InputStream)

    摘要:關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。在此輸入流中標(biāo)記當(dāng)前的位置。將此流重新定位到最后一次對此輸入流調(diào)用方法時的位置。 JAVA IO源碼學(xué)習(xí)系列一(InputStream) ## 1.字節(jié)輸入流源碼InputStream介紹## InpuSteam是字節(jié)輸入流操作的超類(抽象類),定義了基本的一些操作方法,流的操作大概四部分:(1)構(gòu)造數(shù)據(jù)流(來源);(2)讀取流;(3)讀取流...

    mtunique 評論0 收藏0
  • JAVA IO源碼學(xué)習(xí)系列(ByteArrayInputStream)

    摘要:簡介字節(jié)數(shù)組輸入流上一篇簡單的介紹了一下字節(jié)輸入流的超類,只提及了一下超類中定義的一些方法字節(jié)數(shù)組輸入流是超類的一個具體的實(shí)現(xiàn)主要的操作實(shí)際上就是讀取操作一個字節(jié)數(shù)組,類中定義了一個緩沖的字節(jié)數(shù)組,具體的操作通過定義一下標(biāo)志位,操作次數(shù)等進(jìn) 簡介 ByteArrayInputStream 字節(jié)數(shù)組輸入流 上一篇簡單的介紹了一下字節(jié)輸入流的超類,只提及了一下超類中定義的一些方法;字節(jié)數(shù)組...

    Keven 評論0 收藏0
  • JAVA IO源碼學(xué)習(xí)系列(ByteArrayOutputStream)

    介紹 1. 輸出流:ByteArrayOutputStream 上一篇簡單介紹了輸出流的超類OutputStream,也大概的講述了輸出流的作用,本篇就介紹一下,輸出流的一種實(shí)現(xiàn),字節(jié)數(shù)組輸出流,該輸出流是為了處理字節(jié)的基礎(chǔ)流,本質(zhì)上就是寫入數(shù)據(jù)到類中的緩沖字節(jié)數(shù)組中; 2. ByteArrayOutputStream 源代碼介紹 (1)屬性內(nèi)容:屬性內(nèi)容相較輸入流的會有存放數(shù)據(jù)的緩沖區(qū),也就是字...

    oujie 評論0 收藏0
  • JAVA IO源碼學(xué)習(xí)系列(OutputStream)

    摘要:將指定數(shù)組中從偏移量開始的個字節(jié)寫入此輸出流。刷新此輸出流并強(qiáng)制寫出所有緩沖的輸出字節(jié)關(guān)閉此輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源。內(nèi)容不多,召喚神獸 介紹 1. 輸出流:OutputStream 之前的文章中介紹過了輸入流的超類InputStream,這篇文章也簡單的介紹一下與輸入流相對的輸出流;輸入流我們之前說過,是將磁盤,文件,或者網(wǎng)絡(luò)中的數(shù)據(jù)讀取出來,(比如字節(jié)數(shù)組輸入流將數(shù)據(jù)放...

    objc94 評論0 收藏0

發(fā)表評論

0條評論

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