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

資訊專欄INFORMATION COLUMN

重復(fù)消費input stream的方法

468122151 / 663人閱讀

摘要:序本文介紹一下如何重復(fù)消費,普通的,消費一次之后,就不能再用了,有時候需要重復(fù)消費的話,就必須自己緩存一下。這里定義了類,可以用來實現(xiàn)這個目的。開啟并重復(fù)使用的時候一下,然后想重復(fù)使用的時候一下。

本文介紹一下如何重復(fù)消費input stream,普通的inputStream,消費一次之后,就不能再用了,有時候需要重復(fù)消費的話,就必須自己緩存一下。這里定義了ReuseableStream類,可以用來實現(xiàn)這個目的。

ReuseableStream
public class ReuseableStream {

    private InputStream inputStream;

    public ReuseableStream(InputStream inputStream) {
        if (!inputStream.markSupported()) {
            this.inputStream = new BufferedInputStream(inputStream);
        } else {
            this.inputStream = inputStream;
        }
    }

    public InputStream open() {
        inputStream.mark(Integer.MAX_VALUE);
        return inputStream;
    }

    public void reset() throws IOException {
        inputStream.reset();
    }
}
開啟并重復(fù)使用
ReuseableStream reuse = new ReuseableStream(IOUtils.toInputStream("hello", Charsets.UTF_8));
System.out.println(IOUtils.toString(reuse.open(),Charsets.UTF_8));
reuse.reset();
System.out.println(IOUtils.toString(reuse.open(),Charsets.UTF_8));

open的時候mark一下,然后想重復(fù)使用的時候reset一下。

doc

How to Cache InputStream for Multiple Use

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

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

相關(guān)文章

  • springCloud學(xué)習(xí)5(Spring-Cloud-Stream事件驅(qū)動)

    摘要:它是事件驅(qū)動的,我們不斷的發(fā)送消息接受消息處理消息。使用消息實現(xiàn)事件通信的概念被稱為消息驅(qū)動架構(gòu),也被稱為消息驅(qū)動架構(gòu)。許可證服務(wù)收到該消息后清除對應(yīng)的緩存。通過綁定器,使得開發(fā)人員不必依賴于特定平臺的庫和來發(fā)布和消費消息。 showImg(https://segmentfault.com/img/remote/1460000019542885); springcloud 總集:htt...

    Atom 評論0 收藏0
  • Spring Cloud構(gòu)建微服務(wù)架構(gòu):消息驅(qū)動微服務(wù)(入門)【Dalston版】

    摘要:它通過使用來連接消息代理中間件以實現(xiàn)消息事件驅(qū)動的微服務(wù)應(yīng)用。該示例主要目標(biāo)是構(gòu)建一個基于的微服務(wù)應(yīng)用,這個微服務(wù)應(yīng)用將通過使用消息中間件來接收消息并將消息打印到日志中。下面我們通過編寫生產(chǎn)消息的單元測試用例來完善我們的入門內(nèi)容。 之前在寫Spring Boot基礎(chǔ)教程的時候?qū)戇^一篇《Spring Boot中使用RabbitMQ》。在該文中,我們通過簡單的配置和注解就能實現(xiàn)向Rabbi...

    smallStone 評論0 收藏0
  • 轉(zhuǎn) | Java8初體驗(二)Stream語法詳解

    摘要:第一個函數(shù)生成一個新的實例第二個函數(shù)接受兩個參數(shù),第一個是前面生成的對象,二個是中包含的元素,函數(shù)體就是把中的元素加入對象中。 感謝同事【天錦】的投稿。投稿請聯(lián)系 [email protected] 上篇文章[Java8初體驗(一)lambda表達(dá)式語法]()比較詳細(xì)的介紹了lambda表達(dá)式的方方面面,細(xì)心的讀者會發(fā)現(xiàn)那篇文章的例子中有很多Stream的例子。這些Stream的例子可...

    taoszu 評論0 收藏0
  • Spring Cloud Stream 使用延遲消息實現(xiàn)定時任務(wù)(RabbitMQ)

    摘要:然而實際業(yè)務(wù)中還存在另外一種定時任務(wù),它可能需要一些觸發(fā)條件才開始定時,比如編寫博文時候,設(shè)置小時之后發(fā)送。在消息監(jiān)聽類中,對通道定義了,這里會對延遲消息做具體的邏輯。由于消息的消費是延遲的,從而變相實現(xiàn)了從消息發(fā)送那一刻起開始的定時任務(wù)。 應(yīng)用場景 我們在使用一些開源調(diào)度系統(tǒng)(比如:elastic-job等)的時候,對于任務(wù)的執(zhí)行時間通常都是有規(guī)律性的,可能是每隔半小時執(zhí)行一次,或者...

    honhon 評論0 收藏0

發(fā)表評論

0條評論

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