我正在寻找Java中的内存流实现。该实现应在.NET内存流实现之后大致建模。
基本上,我想拥有一个MemoryStream
必须使用工厂方法的类:
class MemoryStream {
MemoryInput createInput();
MemoryOutput createOutput();
}
class MemoryInput extends InputStream {
long position();
void seek(long pos);
}
class MemoryOutput extends OutputStream {
long position();
void seek(long pos);
}
因此,一旦有了该类的实例,MemoryStream
我就应该能够并发地同时创建输入和输出流,这也应该允许在任何方向上定位。内存流不必是循环的,它应该可以很好地用于小尺寸并自动增长。内存流仅需要限制在一个进程中。
有没有可用的现成代码?
ByteArrayInputStream
支持mark()
并reset()
标记信息流中的位置,以便您以后可以跳回该位置。ByteArrayOutputStream
没有这个。彼得·劳瑞(Peter Lawrey)使用NIO的建议ByteBuffer
可能更有用。