[英]What is the best resizable circular byte buffer available in Java?
我需要Java中的字節緩沖類來實現單線程使用。 我應該能夠在緩沖區的后面插入數據並在前面讀取數據,攤銷成本為O(1)。 緩沖區應該在它滿時調整大小,而不是拋出異常或其他東西。
我自己可以寫一個,但如果在標准的Java包中不存在,我會感到非常驚訝,如果沒有,我希望它存在於一些經過良好測試的公共庫中。
你會推薦什么?
不確定它是否是“最好的”,但你在這里有一個很好的循環字節緩沖區示例。
那些Java Utilities - OstermillerUtils類屬於GPL許可 。
此循環字節緩沖區實現字節的循環緩沖區生成器/使用者模型。 使用標准Java InputStreams和OutputStreams完成緩沖區的填充和清空。
使用此類是使用PipedInputStream和PipedOutputStream的更簡單的替代方法。
PipedInputStreams和PipedOutputStreams不支持標記操作,不允許您控制它們使用的緩沖區大小,並且具有更復雜的API,需要實例化兩個類並連接它們。
我想知道這個是否運作良好
我們可能會嘗試這個,因為它是apache許可證。
我在具有類似要求的項目中使用java.util.ArrayDeque<Byte>
。 請注意,您可以使用java.util.concurrent Queue
實現輕松更改實現。
另一個解決方案是使用JBoss的GrowablePipedOutputStream和GrowablePipedInputStream 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.