RandomAccessFile-like API for in-memory byte array?

前端 未结 4 1247
情书的邮戳
情书的邮戳 2021-01-11 16:20

I need to replace code using RandomAccessFile with one that uses in-memory byte buffer (such as byte[] or derivatives like ByteArrayInputStre

相关标签:
4条回答
  • 2021-01-11 16:37

    I had the same problem. RandomAccessFile has many finale and native methods, so it cannot be overloaded.

    I ended to create my own SeekableInputStream abstract class by stealing this one without readfully : https://github.com/samtools/htsjdk/blob/master/src/java/htsjdk/samtools/seekablestream/SeekableStream.java

    I defined SeekableFileInputStream which uses RandomAccessFile.

    I defined SeekableByteArrayInputStream, which is easy to define. This class, is also able to get any InputStream, to transform it into a byte array, so this is a kind of cached stream.

    0 讨论(0)
  • 2021-01-11 16:43

    ByteArrayInputStream can do it:

    • read() works the same.
    • seek(n) can be replaced with reset() followed by skip(n)
    0 讨论(0)
  • 2021-01-11 16:46

    May I suggest Java NIO (New I/O) check this simple and small tutorial

    0 讨论(0)
  • 2021-01-11 16:49

    I happen to have one of these -- I uploaded it to http://home.arcor.de/joriki/seekable-byte-array.zip -- hope that helps.

    0 讨论(0)
提交回复
热议问题