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

时间:2011-02-04 11:44:05

标签: java

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

4 个答案:

答案 0 :(得分:9)

ByteArrayInputStream可以做到:

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

答案 1 :(得分:3)

我建议Java NIO(新I / O)检查this简单和小型教程

答案 2 :(得分:0)

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

我结束了创建我自己的SeekableInputStream抽象类,没有认真地窃取这个抽象类:https://github.com/samtools/htsjdk/blob/master/src/java/htsjdk/samtools/seekablestream/SeekableStream.java

我定义了使用RandomAccessFile的SeekableFileInputStream。

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

答案 3 :(得分:-1)

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