一尘不染

Java中最好的可调整大小的循环字节缓冲区是什么?

java

我需要Java中的字节缓冲区类供单线程使用。我应该能够在缓冲区的后面插入数据,并在前面读取数据,摊销成本为O(1)。缓冲区已满时应调整大小,而不是抛出异常或其他东西。

我可以自己写一个,但是如果它在标准Java包中还不存在,我会感到非常惊讶,如果不存在,我希望它存在于一些经过良好测试的公共库中。

你会推荐什么?


阅读 169

收藏
2020-12-03

共1个答案

一尘不染

不知道它是否是“最好的”,但是您在这里有一个很好的循环字节缓冲区示例。

这些Java Utilities-OstermillerUtils
类已获得GPL许可

该循环字节缓冲区实现了字节的循环缓冲区生产者/消费者模型。填充和清空缓冲区是通过标准Java
InputStreams和OutputStreams完成的。

使用此类是使用PipedInputStream和PipedOutputStream的一种更简单的选择。

PipedInputStreams和PipedOutputStreams不支持标记操作,不允许您控制它们使用的缓冲区大小,并且具有更复杂的API,该API需要实例化两个类并将它们连接。

2020-12-03