Class RandomAccessByteBufferReader

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.nio.ByteBuffer byteBuffer
      The byte buffer.
      private int sliceLength
      The slice length.
      private int sliceStartPos
      The slice start pos.
    • Constructor Summary

      Constructors 
      Constructor Description
      RandomAccessByteBufferReader​(java.nio.ByteBuffer byteBuffer, long sliceStartPos, long sliceLength)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int read​(long srcOffset, byte[] dstArr, int dstArrStart, int numBytes)
      Read bytes into a byte array.
      int read​(long srcOffset, java.nio.ByteBuffer dstBuf, int dstBufStart, int numBytes)
      Read bytes into a ByteBuffer.
      byte readByte​(long offset)
      Read a byte at a specific offset (without changing the current cursor offset).
      int readInt​(long offset)
      Read a int at a specific offset (without changing the current cursor offset).
      long readLong​(long offset)
      Read a long at a specific offset (without changing the current cursor offset).
      short readShort​(long offset)
      Read a short at a specific offset (without changing the current cursor offset).
      java.lang.String readString​(long offset, int numBytes)
      Reads the "modified UTF8" format defined in the Java classfile spec.
      java.lang.String readString​(long offset, int numBytes, boolean replaceSlashWithDot, boolean stripLSemicolon)
      Reads the "modified UTF8" format defined in the Java classfile spec, optionally replacing '/' with '.', and optionally removing the prefix "L" and the suffix ";".
      int readUnsignedByte​(long offset)
      Read an unsigned byte at a specific offset (without changing the current cursor offset).
      long readUnsignedInt​(long offset)
      Read a unsigned int at a specific offset (without changing the current cursor offset).
      int readUnsignedShort​(long offset)
      Read a unsigned short at a specific offset (without changing the current cursor offset).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • byteBuffer

        private final java.nio.ByteBuffer byteBuffer
        The byte buffer.
      • sliceStartPos

        private final int sliceStartPos
        The slice start pos.
      • sliceLength

        private final int sliceLength
        The slice length.
    • Constructor Detail

      • RandomAccessByteBufferReader

        public RandomAccessByteBufferReader​(java.nio.ByteBuffer byteBuffer,
                                            long sliceStartPos,
                                            long sliceLength)
        Constructor.
        Parameters:
        byteBuffer - the byte buffer
        sliceStartPos - the slice start pos
        sliceLength - the slice length
    • Method Detail

      • read

        public int read​(long srcOffset,
                        byte[] dstArr,
                        int dstArrStart,
                        int numBytes)
                 throws java.io.IOException
        Description copied from interface: RandomAccessReader
        Read bytes into a byte array.
        Specified by:
        read in interface RandomAccessReader
        Parameters:
        srcOffset - The offset to start reading from.
        dstArr - The byte array to write into.
        dstArrStart - The offset within the destination array to start writing at.
        numBytes - The number of bytes to read.
        Returns:
        The number of bytes actually read, or -1 if no more bytes could be read.
        Throws:
        java.io.IOException - If there was an exception while reading.
      • read

        public int read​(long srcOffset,
                        java.nio.ByteBuffer dstBuf,
                        int dstBufStart,
                        int numBytes)
                 throws java.io.IOException
        Description copied from interface: RandomAccessReader
        Read bytes into a ByteBuffer.
        Specified by:
        read in interface RandomAccessReader
        Parameters:
        srcOffset - The offset to start reading from.
        dstBuf - The ByteBuffer to write into.
        dstBufStart - The offset within the destination buffer to start writing at.
        numBytes - The number of bytes to read.
        Returns:
        The number of bytes actually read, or -1 if no more bytes could be read.
        Throws:
        java.io.IOException - If there was an exception while reading.
      • readByte

        public byte readByte​(long offset)
                      throws java.io.IOException
        Description copied from interface: RandomAccessReader
        Read a byte at a specific offset (without changing the current cursor offset).
        Specified by:
        readByte in interface RandomAccessReader
        Parameters:
        offset - The buffer offset to read from.
        Returns:
        The byte at the offset.
        Throws:
        java.io.IOException - If there was an exception while reading.
      • readUnsignedByte

        public int readUnsignedByte​(long offset)
                             throws java.io.IOException
        Description copied from interface: RandomAccessReader
        Read an unsigned byte at a specific offset (without changing the current cursor offset).
        Specified by:
        readUnsignedByte in interface RandomAccessReader
        Parameters:
        offset - The buffer offset to read from.
        Returns:
        The unsigned byte at the offset.
        Throws:
        java.io.IOException - If there was an exception while reading.
      • readUnsignedShort

        public int readUnsignedShort​(long offset)
                              throws java.io.IOException
        Description copied from interface: RandomAccessReader
        Read a unsigned short at a specific offset (without changing the current cursor offset).
        Specified by:
        readUnsignedShort in interface RandomAccessReader
        Parameters:
        offset - The buffer offset to read from.
        Returns:
        The unsigned short at the offset.
        Throws:
        java.io.IOException - If there was an exception while reading.
      • readShort

        public short readShort​(long offset)
                        throws java.io.IOException
        Description copied from interface: RandomAccessReader
        Read a short at a specific offset (without changing the current cursor offset).
        Specified by:
        readShort in interface RandomAccessReader
        Parameters:
        offset - The buffer offset to read from.
        Returns:
        The short at the offset.
        Throws:
        java.io.IOException - If there was an exception while reading.
      • readInt

        public int readInt​(long offset)
                    throws java.io.IOException
        Description copied from interface: RandomAccessReader
        Read a int at a specific offset (without changing the current cursor offset).
        Specified by:
        readInt in interface RandomAccessReader
        Parameters:
        offset - The buffer offset to read from.
        Returns:
        The int at the offset.
        Throws:
        java.io.IOException - If there was an exception while reading.
      • readUnsignedInt

        public long readUnsignedInt​(long offset)
                             throws java.io.IOException
        Description copied from interface: RandomAccessReader
        Read a unsigned int at a specific offset (without changing the current cursor offset).
        Specified by:
        readUnsignedInt in interface RandomAccessReader
        Parameters:
        offset - The buffer offset to read from.
        Returns:
        The int at the offset, as a long.
        Throws:
        java.io.IOException - If there was an exception while reading.
      • readLong

        public long readLong​(long offset)
                      throws java.io.IOException
        Description copied from interface: RandomAccessReader
        Read a long at a specific offset (without changing the current cursor offset).
        Specified by:
        readLong in interface RandomAccessReader
        Parameters:
        offset - The buffer offset to read from.
        Returns:
        The long at the offset.
        Throws:
        java.io.IOException - If there was an exception while reading.
      • readString

        public java.lang.String readString​(long offset,
                                           int numBytes,
                                           boolean replaceSlashWithDot,
                                           boolean stripLSemicolon)
                                    throws java.io.IOException
        Description copied from interface: RandomAccessReader
        Reads the "modified UTF8" format defined in the Java classfile spec, optionally replacing '/' with '.', and optionally removing the prefix "L" and the suffix ";".
        Specified by:
        readString in interface RandomAccessReader
        Parameters:
        offset - The start offset of the string.
        numBytes - The number of bytes of the UTF8 encoding of the string.
        replaceSlashWithDot - If true, replace '/' with '.'.
        stripLSemicolon - If true, string final ';' character.
        Returns:
        The string.
        Throws:
        java.io.IOException - If an I/O exception occurs.
      • readString

        public java.lang.String readString​(long offset,
                                           int numBytes)
                                    throws java.io.IOException
        Description copied from interface: RandomAccessReader
        Reads the "modified UTF8" format defined in the Java classfile spec.
        Specified by:
        readString in interface RandomAccessReader
        Parameters:
        offset - The start offset of the string.
        numBytes - The number of bytes of the UTF8 encoding of the string.
        Returns:
        The string.
        Throws:
        java.io.IOException - If an I/O exception occurs.