类似于RandomAccessFile的内存字节数组的API?

我需要使用RandomAccessFile替换代码,使用内存字节缓冲区(如byte[]或衍生类如ByteArrayInputStream )。 是否有一些API(字节数组包装?)具有类似于RandomAccessFile接口,具有seek()和streamish read() ,我可以一对一插入?

ByteArrayInputStream可以做到:

  • read()工作方式相同。
  • seek(n)可以用reset()后跟skip(n)替换

我可以建议Java NIO (新I / O)检查这个简单的小教程

我有同样的问题。 RandomAccessFile有许多结局和本机方法,所以它不能重载。

我结束了创建我自己的SeekableInputStream抽象类,通过偷偷摸摸这个: https : //github.com/samtools/htsjdk/blob/master/src/java/htsjdk/samtools/seekablestream/SeekableStream.java

我定义了使用RandomAccessFile的SeekableFileInputStream。

我定义了SeekableByteArrayInputStream,它很容易定义。 这个类也能够获取任何InputStream,将其转换为字节数组,因此这是一种缓存流。

我碰巧有其中一个 – 我把它上传到http://home.arcor.de/joriki/seekable-byte-array.zip – 希望有所帮助。