摘要:序本文介紹一下如何重復(fù)消費(fèi),普通的,消費(fèi)一次之后,就不能再用了,有時(shí)候需要重復(fù)消費(fèi)的話(huà),就必須自己緩存一下。這里定義了類(lèi),可以用來(lái)實(shí)現(xiàn)這個(gè)目的。開(kāi)啟并重復(fù)使用的時(shí)候一下,然后想重復(fù)使用的時(shí)候一下。
序
本文介紹一下如何重復(fù)消費(fèi)input stream,普通的inputStream,消費(fèi)一次之后,就不能再用了,有時(shí)候需要重復(fù)消費(fèi)的話(huà),就必須自己緩存一下。這里定義了ReuseableStream類(lèi),可以用來(lái)實(shí)現(xiàn)這個(gè)目的。
ReuseableStreampublic 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(); } }開(kāi)啟并重復(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));
docopen的時(shí)候mark一下,然后想重復(fù)使用的時(shí)候reset一下。
How to Cache InputStream for Multiple Use
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/70265.html
摘要:它是事件驅(qū)動(dòng)的,我們不斷的發(fā)送消息接受消息處理消息。使用消息實(shí)現(xiàn)事件通信的概念被稱(chēng)為消息驅(qū)動(dòng)架構(gòu),也被稱(chēng)為消息驅(qū)動(dòng)架構(gòu)。許可證服務(wù)收到該消息后清除對(duì)應(yīng)的緩存。通過(guò)綁定器,使得開(kāi)發(fā)人員不必依賴(lài)于特定平臺(tái)的庫(kù)和來(lái)發(fā)布和消費(fèi)消息。 showImg(https://segmentfault.com/img/remote/1460000019542885); springcloud 總集:htt...
摘要:它通過(guò)使用來(lái)連接消息代理中間件以實(shí)現(xiàn)消息事件驅(qū)動(dòng)的微服務(wù)應(yīng)用。該示例主要目標(biāo)是構(gòu)建一個(gè)基于的微服務(wù)應(yīng)用,這個(gè)微服務(wù)應(yīng)用將通過(guò)使用消息中間件來(lái)接收消息并將消息打印到日志中。下面我們通過(guò)編寫(xiě)生產(chǎn)消息的單元測(cè)試用例來(lái)完善我們的入門(mén)內(nèi)容。 之前在寫(xiě)Spring Boot基礎(chǔ)教程的時(shí)候?qū)戇^(guò)一篇《Spring Boot中使用RabbitMQ》。在該文中,我們通過(guò)簡(jiǎn)單的配置和注解就能實(shí)現(xiàn)向Rabbi...
摘要:第一個(gè)函數(shù)生成一個(gè)新的實(shí)例第二個(gè)函數(shù)接受兩個(gè)參數(shù),第一個(gè)是前面生成的對(duì)象,二個(gè)是中包含的元素,函數(shù)體就是把中的元素加入對(duì)象中。 感謝同事【天錦】的投稿。投稿請(qǐng)聯(lián)系 tengfei@ifeve.com 上篇文章[Java8初體驗(yàn)(一)lambda表達(dá)式語(yǔ)法]()比較詳細(xì)的介紹了lambda表達(dá)式的方方面面,細(xì)心的讀者會(huì)發(fā)現(xiàn)那篇文章的例子中有很多Stream的例子。這些Stream的例子可...
摘要:然而實(shí)際業(yè)務(wù)中還存在另外一種定時(shí)任務(wù),它可能需要一些觸發(fā)條件才開(kāi)始定時(shí),比如編寫(xiě)博文時(shí)候,設(shè)置小時(shí)之后發(fā)送。在消息監(jiān)聽(tīng)類(lèi)中,對(duì)通道定義了,這里會(huì)對(duì)延遲消息做具體的邏輯。由于消息的消費(fèi)是延遲的,從而變相實(shí)現(xiàn)了從消息發(fā)送那一刻起開(kāi)始的定時(shí)任務(wù)。 應(yīng)用場(chǎng)景 我們?cè)谑褂靡恍╅_(kāi)源調(diào)度系統(tǒng)(比如:elastic-job等)的時(shí)候,對(duì)于任務(wù)的執(zhí)行時(shí)間通常都是有規(guī)律性的,可能是每隔半小時(shí)執(zhí)行一次,或者...
閱讀 1924·2023-04-26 01:02
閱讀 5065·2021-11-24 09:39
閱讀 1944·2019-08-30 15:44
閱讀 3127·2019-08-30 11:10
閱讀 1863·2019-08-30 10:49
閱讀 1146·2019-08-29 17:06
閱讀 678·2019-08-29 16:15
閱讀 976·2019-08-29 15:17