uk.ac.starlink.fits

## Class ByteBufferInput

- java.lang.Object
- - uk.ac.starlink.fits.ByteBufferInput

- All Implemented Interfaces:
    BasicInput

      public class ByteBufferInput
      extends java.lang.Object
      implements BasicInput

  Random-access BasicInput implementation based on a ByteBuffer.
  Since:
    1 Dec 2014

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ByteBufferInput(java.nio.ByteBuffer niobuf)` Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Releases resources belonging to this object.
    `long` | `getOffset()` Returns the curent position in this stream (optional operation).
    `boolean` | `isRandom()` Indicates whether this object supports random access.
    `byte` | `readByte()` Reads a byte from the stream.
    `void` | `readBytes(byte[] bbuf)` Reads bytes into an array from the stream.
    `double` | `readDouble()` Reads an 8-byte floating point value from the stream.
    `float` | `readFloat()` Reads a 4-byte floating point value from the stream.
    `int` | `readInt()` Reads a 4-byte integer from the stream.
    `long` | `readLong()` Reads an 8-byte integer from the stream.
    `short` | `readShort()` Reads a 2-byte integer from the stream.
    `void` | `seek(long pos)` Moves the current position of this stream to a given byte offset (optional operation).
    `void` | `skip(long nbyte)` Skips a given number of bytes forwards through the stream.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ByteBufferInput

          public ByteBufferInput(java.nio.ByteBuffer niobuf)

      Constructor.
      Parameters:
        `niobuf` - byte buffer

  - ### Method Detail

    - #### isRandom

          public boolean isRandom()

      Description copied from interface: `BasicInput`
      Indicates whether this object supports random access. The seek and getOffset methods may only be called if this method returns true.
      Specified by:
        `isRandom` in interface `BasicInput`
      Returns:
        true iff random access is supported

    - #### seek

          public void seek(long pos)
                    throws java.io.EOFException

      Description copied from interface: `BasicInput`
      Moves the current position of this stream to a given byte offset (optional operation).
      Specified by:
        `seek` in interface `BasicInput`
      Throws:
        `java.io.EOFException`

    - #### getOffset

          public long getOffset()

      Description copied from interface: `BasicInput`
      Returns the curent position in this stream (optional operation).
      Specified by:
        `getOffset` in interface `BasicInput`

    - #### skip

          public void skip(long nbyte)
                    throws java.io.IOException

      Description copied from interface: `BasicInput`
      Skips a given number of bytes forwards through the stream. An exception is thrown if there are not enough bytes left.
      Specified by:
        `skip` in interface `BasicInput`
      Parameters:
        `nbyte` - number of bytes to skip
      Throws:
        `java.io.IOException`

    - #### readByte

          public byte readByte()
                        throws java.io.EOFException

      Description copied from interface: `BasicInput`
      Reads a byte from the stream. The current position is advanced.
      Specified by:
        `readByte` in interface `BasicInput`
      Returns:
        byte value
      Throws:
        `java.io.EOFException`

    - #### readShort

          public short readShort()
                          throws java.io.EOFException

      Description copied from interface: `BasicInput`
      Reads a 2-byte integer from the stream. The current position is advanced.
      Specified by:
        `readShort` in interface `BasicInput`
      Returns:
        short value
      Throws:
        `java.io.EOFException`

    - #### readInt

          public int readInt()
                      throws java.io.EOFException

      Description copied from interface: `BasicInput`
      Reads a 4-byte integer from the stream. The current position is advanced.
      Specified by:
        `readInt` in interface `BasicInput`
      Returns:
        int value
      Throws:
        `java.io.EOFException`

    - #### readLong

          public long readLong()
                        throws java.io.EOFException

      Description copied from interface: `BasicInput`
      Reads an 8-byte integer from the stream. The current position is advanced.
      Specified by:
        `readLong` in interface `BasicInput`
      Returns:
        long value
      Throws:
        `java.io.EOFException`

    - #### readFloat

          public float readFloat()
                          throws java.io.EOFException

      Description copied from interface: `BasicInput`
      Reads a 4-byte floating point value from the stream. The current position is advanced.
      Specified by:
        `readFloat` in interface `BasicInput`
      Returns:
        float value
      Throws:
        `java.io.EOFException`

    - #### readDouble

          public double readDouble()
                            throws java.io.EOFException

      Description copied from interface: `BasicInput`
      Reads an 8-byte floating point value from the stream. The current position is advanced.
      Specified by:
        `readDouble` in interface `BasicInput`
      Returns:
        double value
      Throws:
        `java.io.EOFException`

    - #### readBytes

          public void readBytes(byte[] bbuf)
                         throws java.io.EOFException

      Description copied from interface: `BasicInput`
      Reads bytes into an array from the stream. The current position is advanced.
      Specified by:
        `readBytes` in interface `BasicInput`
      Parameters:
        `bbuf` - array into which the bytes are read; the number of bytes read is the length of the array
      Throws:
        `java.io.EOFException`

    - #### close

          public void close()

      Description copied from interface: `BasicInput`
      Releases resources belonging to this object. Attempts to use it after a call to this method result in undefined behaviour.
      Specified by:
        `close` in interface `BasicInput`