我需要Java中的字节缓冲类来实现单线程使用.我应该能够在缓冲区的后面插入数据并在前面读取数据,摊销成本为O(1).缓冲区应该在它满时调整大小,而不是抛出异常或其他东西.
我自己可以写一个,但如果在标准的Java包中不存在,我会感到非常惊讶,如果没有,我希望它存在于一些经过良好测试的公共库中.
你会推荐什么?
不确定它是否是"最好的",但你在这里有一个很好的循环字节缓冲区示例.
那些Java Utilities - OstermillerUtils 类属于GPL许可.
此循环字节缓冲区实现字节的循环缓冲区生成器/使用者模型.使用标准Java InputStreams和OutputStreams完成缓冲区的填充和清空.
使用此类是使用PipedInputStream和PipedOutputStream的更简单的替代方法.
PipedInputStreams和PipedOutputStreams不支持标记操作,不允许您控制它们使用的缓冲区大小,并且具有更复杂的API,需要实例化两个类并连接它们.