Class LEDataInputStream

java.lang.Object
java.io.InputStream
org.eclipse.swt.internal.image.LEDataInputStream
All Implemented Interfaces:
Closeable, AutoCloseable

final class LEDataInputStream extends InputStream
  • Field Details

    • position

      int position
    • in

    • buf

      protected byte[] buf
      The byte array containing the bytes to read.
    • pos

      protected int pos
      The current position within the byte array buf. A value equal to buf.length indicates no bytes available. A value of 0 indicates the buffer is full.
  • Constructor Details

    • LEDataInputStream

      public LEDataInputStream(InputStream input)
    • LEDataInputStream

      public LEDataInputStream(InputStream input, int bufferSize)
  • Method Details

    • 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
    • getPosition

      public int getPosition()
      Answer how many bytes were read.
    • available

      public int available() throws IOException
      Answers how many bytes are available for reading without blocking
      Overrides:
      available in class InputStream
      Throws:
      IOException
    • read

      public int read() throws IOException
      Answer the next byte of the input stream.
      Specified by:
      read in class InputStream
      Throws:
      IOException
    • read

      public int read(byte[] b, int off, int len) throws IOException
      Don't imitate the JDK behaviour of reading a random number of bytes when you can actually read them all.
      Overrides:
      read in class InputStream
      Throws:
      IOException
    • readData

      private int readData(byte[] buffer, int offset, int length) throws IOException
      Reads at most length bytes from this LEDataInputStream and stores them in byte array buffer starting at offset.

      Answer the number of bytes actually read or -1 if no bytes were read and end of stream was encountered. This implementation reads bytes from the pushback buffer first, then the target stream if more bytes are required to satisfy count.

      Parameters:
      buffer - the byte array in which to store the read bytes.
      offset - the offset in buffer to store the read bytes.
      length - the maximum number of bytes to store in buffer.
      Returns:
      int the number of bytes actually read or -1 if end of stream.
      Throws:
      IOException - if an IOException occurs.
    • readInt

      public int readInt() throws IOException
      Answer an integer comprised of the next four bytes of the input stream.
      Throws:
      IOException
    • readShort

      public short readShort() throws IOException
      Answer a short comprised of the next two bytes of the input stream.
      Throws:
      IOException
    • unread

      public void unread(byte[] b) throws IOException
      Push back the entire content of the given buffer b.

      The bytes are pushed so that they would be read back b[0], b[1], etc. If the push back buffer cannot handle the bytes copied from b, an IOException will be thrown and no byte will be pushed back.

      Parameters:
      b - the byte array containing bytes to push back into the stream
      Throws:
      IOException - if the pushback buffer is too small