Interface SequentialSource

  • All Superinterfaces:
    java.lang.AutoCloseable, java.io.Closeable
    All Known Implementing Classes:
    InputStreamSource, RandomAccessSource

    interface SequentialSource
    extends java.io.Closeable
    A SequentialSource provides access to sequential data for parsing.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      long getPosition()
      Returns offset of next byte to be returned by a read method.
      boolean isEOF()
      Returns true if the end of the data source has been reached.
      int peek()
      This will peek at the next byte.
      int read()
      Read a single byte of data.
      int read​(byte[] b)
      Read a buffer of data.
      int read​(byte[] b, int offset, int length)
      Read a buffer of data.
      byte[] readFully​(int length)
      Reads a given number of bytes in its entirety.
      void unread​(byte[] bytes)
      Unreads an array of bytes.
      void unread​(byte[] bytes, int start, int len)
      Unreads a portion of an array of bytes.
      void unread​(int b)
      Unreads a single byte.
      • Methods inherited from interface java.io.Closeable

        close
    • Method Detail

      • read

        int read()
          throws java.io.IOException
        Read a single byte of data.
        Returns:
        The byte of data that is being read.
        Throws:
        java.io.IOException - If there is an error while reading the data.
      • read

        int read​(byte[] b)
          throws java.io.IOException
        Read a buffer of data.
        Parameters:
        b - The buffer to write the data to.
        Returns:
        The number of bytes that were actually read.
        Throws:
        java.io.IOException - If there was an error while reading the data.
      • read

        int read​(byte[] b,
                 int offset,
                 int length)
          throws java.io.IOException
        Read a buffer of data.
        Parameters:
        b - The buffer to write the data to.
        offset - Offset into the buffer to start writing.
        length - The amount of data to attempt to read.
        Returns:
        The number of bytes that were actually read.
        Throws:
        java.io.IOException - If there was an error while reading the data.
      • getPosition

        long getPosition()
                  throws java.io.IOException
        Returns offset of next byte to be returned by a read method.
        Returns:
        offset of next byte which will be returned with next read() (if no more bytes are left it returns a value >= length of source).
        Throws:
        java.io.IOException - If there was an error while reading the data.
      • peek

        int peek()
          throws java.io.IOException
        This will peek at the next byte.
        Returns:
        The next byte on the stream, leaving it as available to read.
        Throws:
        java.io.IOException - If there is an error reading the next byte.
      • unread

        void unread​(int b)
             throws java.io.IOException
        Unreads a single byte.
        Parameters:
        b - byte array to push back
        Throws:
        java.io.IOException - if there is an error while unreading
      • unread

        void unread​(byte[] bytes)
             throws java.io.IOException
        Unreads an array of bytes.
        Parameters:
        bytes - byte array to be unread
        Throws:
        java.io.IOException - if there is an error while unreading
      • unread

        void unread​(byte[] bytes,
                    int start,
                    int len)
             throws java.io.IOException
        Unreads a portion of an array of bytes.
        Parameters:
        bytes - byte array to be unread
        start - start index
        len - number of bytes to be unread
        Throws:
        java.io.IOException - if there is an error while unreading
      • readFully

        byte[] readFully​(int length)
                  throws java.io.IOException
        Reads a given number of bytes in its entirety.
        Parameters:
        length - the number of bytes to be read
        Returns:
        a byte array containing the bytes just read
        Throws:
        java.io.IOException - if an I/O error occurs while reading data
      • isEOF

        boolean isEOF()
               throws java.io.IOException
        Returns true if the end of the data source has been reached.
        Returns:
        true if we are at the end of the data.
        Throws:
        java.io.IOException - If there is an error reading the next byte.