Class ByteArrayDataInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.DataInput, java.lang.AutoCloseable

    public class ByteArrayDataInputStream
    extends java.io.InputStream
    implements java.io.DataInput
    Implements DataInput over a byte[] buffer. This class is not thread safe.
    Since:
    3.5
    Author:
    Bela Ban
    • Field Detail

      • buf

        protected final byte[] buf
      • pos

        protected int pos
      • limit

        protected final int limit
      • EMPTY

        protected static final java.nio.ByteBuffer EMPTY
    • Constructor Detail

      • ByteArrayDataInputStream

        public ByteArrayDataInputStream​(byte[] buf)
      • ByteArrayDataInputStream

        public ByteArrayDataInputStream​(byte[] buf,
                                        int offset,
                                        int length)
      • ByteArrayDataInputStream

        public ByteArrayDataInputStream​(ByteArray buf)
      • ByteArrayDataInputStream

        public ByteArrayDataInputStream​(java.nio.ByteBuffer buffer)
    • Method Detail

      • buffer

        public byte[] buffer()
      • byteBuffer

        public java.nio.ByteBuffer byteBuffer()
      • position

        public int position()
      • limit

        public int limit()
      • capacity

        public int capacity()
      • advance

        public ByteArrayDataInputStream advance​(int amount)
        Advances the current position without reading any bytes. This can be useful to skip bytes if necessary or if the byte[] is read externally from this InputStream.
        Parameters:
        amount - the amount to move the position forward
        Throws:
        java.lang.IndexOutOfBoundsException - if the amount to move and the current position is larger than the limit
      • read

        public int read()
        Reads the next byte of data from buf. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the buffer has been reached, the value -1 is returned.
        Specified by:
        read in class java.io.InputStream
        Returns:
        the next byte of data, or -1 if the end of the stream has been reached.
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
        Overrides:
        read in class java.io.InputStream
      • readFully

        public void readFully​(byte[] b)
                       throws java.io.IOException
        Specified by:
        readFully in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readFully

        public void readFully​(byte[] b,
                              int off,
                              int len)
                       throws java.io.IOException
        Specified by:
        readFully in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readBuffer

        public java.nio.ByteBuffer readBuffer​(int len)
        Non-copying reading of len bytes from the input stream into a ByteBuffer.
        Reads len bytes from the input stream and wraps them in a ByteBuffer. Note that the buffer is pinned to a subrange of the underlying 'buf' byte[] array: make sure that the contents of 'buf' don't change until you're done with 'buf', or else you'll end up with unpredictable behavior.
      • skipBytes

        public int skipBytes​(int n)
        Specified by:
        skipBytes in interface java.io.DataInput
      • readBoolean

        public boolean readBoolean()
                            throws java.io.IOException
        Specified by:
        readBoolean in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readByte

        public byte readByte()
                      throws java.io.IOException
        Specified by:
        readByte in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readUnsignedByte

        public int readUnsignedByte()
                             throws java.io.IOException
        Specified by:
        readUnsignedByte in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readShort

        public short readShort()
                        throws java.io.IOException
        Specified by:
        readShort in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readUnsignedShort

        public int readUnsignedShort()
                              throws java.io.IOException
        Specified by:
        readUnsignedShort in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readChar

        public char readChar()
                      throws java.io.IOException
        Specified by:
        readChar in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readInt

        public int readInt()
                    throws java.io.IOException
        Specified by:
        readInt in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readLong

        public long readLong()
                      throws java.io.IOException
        Specified by:
        readLong in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readFloat

        public float readFloat()
                        throws java.io.IOException
        Specified by:
        readFloat in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readDouble

        public double readDouble()
                          throws java.io.IOException
        Specified by:
        readDouble in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readLine

        public java.lang.String readLine()
                                  throws java.io.IOException
        Specified by:
        readLine in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readUTF

        public java.lang.String readUTF()
                                 throws java.io.IOException
        Specified by:
        readUTF in interface java.io.DataInput
        Throws:
        java.io.IOException
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • checkBounds

        protected int checkBounds​(int pos)