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