I need to replace code using RandomAccessFile with one that uses in-memory byte buffer (such as byte[] or derivatives like ByteArrayInputStre
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.