Class IconExe.LEDataInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable
    Enclosing class:
    IconExe

    static class IconExe.LEDataInputStream
    extends java.io.InputStream
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected byte[] buf
      The byte array containing the bytes to read.
      (package private) java.io.InputStream in  
      protected int pos
      The current position within the byte array buf.
      (package private) int position  
    • Constructor Summary

      Constructors 
      Constructor Description
      LEDataInputStream​(java.io.InputStream input)  
      LEDataInputStream​(java.io.InputStream input, int bufferSize)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int available()
      Answers how many bytes are available for reading without blocking
      void close()  
      int getPosition()
      Answer how many bytes were read.
      int read()
      Answer the next byte of the input stream.
      int read​(byte[] b, int off, int len)
      Don't imitate the JDK behaviour of reading a random number of bytes when you can actually read them all.
      private int readData​(byte[] buffer, int offset, int length)
      Reads at most length bytes from this LEDataInputStream and stores them in byte array buffer starting at offset.
      int readInt()
      Answer an integer comprised of the next four bytes of the input stream.
      short readShort()
      Answer a short comprised of the next two bytes of the input stream.
      void unread​(byte[] b)
      Push back the entire content of the given buffer b.
      • Methods inherited from class java.io.InputStream

        mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
      • Methods inherited from class java.lang.Object

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

      • position

        int position
      • in

        java.io.InputStream 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 Detail

      • LEDataInputStream

        public LEDataInputStream​(java.io.InputStream input)
      • LEDataInputStream

        public LEDataInputStream​(java.io.InputStream input,
                                 int bufferSize)
    • Method Detail

      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.InputStream
        Throws:
        java.io.IOException
      • getPosition

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

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

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

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws java.io.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 java.io.InputStream
        Throws:
        java.io.IOException
      • readData

        private int readData​(byte[] buffer,
                             int offset,
                             int length)
                      throws java.io.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:
        java.io.IOException - if an IOException occurs.
      • readInt

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

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

        public void unread​(byte[] b)
                    throws java.io.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:
        java.io.IOException - if the pushback buffer is too small