Interface Input

All Superinterfaces:
AutoCloseable, Closeable
All Known Implementing Classes:
ChannelInput, StreamInput

public interface Input extends Closeable
The Input interface abstract the input source of CryptoInputStream so that different implementation of input can be used. The implementation Input interface will usually wraps an input mechanism such as InputStream or ReadableByteChannel.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Returns an estimate of the number of bytes that can be read (or skipped over) from this input without blocking by the next invocation of a method for this input stream.
    void
    Closes this input and releases any system resources associated with the under layer input.
    int
    read(long position, byte[] buffer, int offset, int length)
    Reads up to the specified number of bytes from a given position within a stream and return the number of bytes read.
    int
    Reads a sequence of bytes from input into the given buffer.
    void
    seek(long position)
    Seeks to the given offset from the start of the stream.
    long
    skip(long n)
    Skips over and discards n bytes of data from this input The skip method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly 0.
  • Method Details

    • available

      int available() throws IOException
      Returns an estimate of the number of bytes that can be read (or skipped over) from this input without blocking by the next invocation of a method for this input stream. The next invocation might be the same thread or another thread. A single read or skip of this many bytes will not block, but may read or skip fewer bytes.

      It is never correct to use the return value of this method to allocate a buffer intended to hold all data in this stream.

      Returns:
      an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking or 0 when it reaches the end of the input stream.
      Throws:
      IOException - if an I/O error occurs.
    • close

      void close() throws IOException
      Closes this input and releases any system resources associated with the under layer input.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException - if an I/O error occurs.
    • read

      int read(ByteBuffer dst) throws IOException
      Reads a sequence of bytes from input into the given buffer.

      An attempt is made to read up to r bytes from the input, where r is the number of bytes remaining in the buffer, that is, dst.remaining(), at the moment this method is invoked.

      Suppose that a byte sequence of length n is read, where 0  <= n <= r. This byte sequence will be transferred into the buffer so that the first byte in the sequence is at index p and the last byte is at index p + n - 1, where p is the buffer's position at the moment this method is invoked. Upon return the buffer's position will be equal to p + n; its limit will not have changed.

      Parameters:
      dst - The buffer into which bytes are to be transferred.
      Returns:
      the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
      Throws:
      IOException - If some other I/O error occurs.
    • read

      int read(long position, byte[] buffer, int offset, int length) throws IOException
      Reads up to the specified number of bytes from a given position within a stream and return the number of bytes read. This does not change the current offset of the stream and is thread-safe. An implementation may not support positioned read. If the implementation doesn't support positioned read, it throws UnsupportedOperationException.
      Parameters:
      position - the given position within a stream.
      buffer - the buffer into which the data is read.
      offset - the start offset in array buffer.
      length - the maximum number of bytes to read.
      Returns:
      the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
      Throws:
      IOException - if an I/O error occurs.
    • seek

      void seek(long position) throws IOException
      Seeks to the given offset from the start of the stream. The next read() will be from that location. An implementation may not support seek. If the implementation doesn't support seek, it throws UnsupportedOperationException.
      Parameters:
      position - the offset from the start of the stream.
      Throws:
      IOException - if an I/O error occurs.
    • skip

      long skip(long n) throws IOException
      Skips over and discards n bytes of data from this input The skip method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly 0. This may result from any of a number of conditions; reaching end of file before n bytes have been skipped is only one possibility. The actual number of bytes skipped is returned. If n is negative, no bytes are skipped.

      The skip method of this class creates a byte array and then repeatedly reads into it until n bytes have been read or the end of the stream has been reached. Subclasses are encouraged to provide a more efficient implementation of this method. For instance, the implementation may depend on the ability to seek.

      Parameters:
      n - the number of bytes to be skipped.
      Returns:
      the actual number of bytes skipped.
      Throws:
      IOException - if the stream does not support seek, or if some other I/O error occurs.