Class ByteInputStream

All Implemented Interfaces:
Closeable, AutoCloseable, ByteInput
Direct Known Subclasses:
LimitedByteInput, SimpleDataInput

public class ByteInputStream extends SimpleByteInput
An InputStream which implements ByteInput and reads bytes from another ByteInput. Usually the Marshalling.createByteInput(InputStream) method should be used to create instances because it can detect when the target already implements ByteInput.
  • Field Details

    • byteInput

      protected volatile ByteInput byteInput
  • Constructor Details

    • ByteInputStream

      public ByteInputStream(ByteInput byteInput)
      Create a new instance.
      Parameters:
      byteInput - the byte input to read from
  • Method Details

    • read

      public int read() throws IOException
      Reads the next byte of data from the input stream. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.
      Specified by:
      read in interface ByteInput
      Specified by:
      read in class InputStream
      Returns:
      the next byte, or -1 if the end of stream has been reached
      Throws:
      IOException - if an error occurs
    • read

      public int read(byte[] b) throws IOException
      Read some bytes from the input stream into the given array. Returns the number of bytes actually read (possibly zero), or -1 if the end of stream has been reached.
      Specified by:
      read in interface ByteInput
      Overrides:
      read in class InputStream
      Parameters:
      b - the destination array
      Returns:
      the number of bytes read (possibly zero), or -1 if the end of stream has been reached
      Throws:
      IOException - if an error occurs
    • read

      public int read(byte[] b, int off, int len) throws IOException
      Read some bytes from the input stream into the given array. Returns the number of bytes actually read (possibly zero), or -1 if the end of stream has been reached.
      Specified by:
      read in interface ByteInput
      Overrides:
      read in class InputStream
      Parameters:
      b - the destination array
      off - the offset into the array into which data should be read
      len - the number of bytes to attempt to fill in the destination array
      Returns:
      the number of bytes read (possibly zero), or -1 if the end of stream has been reached
      Throws:
      IOException - if an error occurs
    • skip

      public long skip(long n) throws IOException
      Skips over and discards up to n bytes of data from this input stream. If the end of stream is reached, this method returns 0 in order to be consistent with InputStream.skip(long).
      Specified by:
      skip in interface ByteInput
      Overrides:
      skip in class InputStream
      Parameters:
      n - the number of bytes to attempt to skip
      Returns:
      the number of bytes skipped
      Throws:
      IOException - if an error occurs
    • available

      public int available() throws IOException
      Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream.
      Specified by:
      available in interface ByteInput
      Overrides:
      available in class InputStream
      Returns:
      the number of bytes
      Throws:
      IOException - if an error occurs
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class InputStream
      Throws:
      IOException