Class ChannelInputStream

java.lang.Object
java.io.InputStream
org.xnio.streams.ChannelInputStream
All Implemented Interfaces:
Closeable, AutoCloseable

public class ChannelInputStream extends InputStream
An input stream which reads from a stream source channel. All read operations are directly performed upon the channel, so for optimal performance, a buffering input stream should be used to wrap this class.
Since:
1.2
  • Field Details

  • Constructor Details

    • ChannelInputStream

      public ChannelInputStream(StreamSourceChannel channel)
      Construct a new instance. The stream will have no read timeout.
      Parameters:
      channel - the channel to wrap
    • ChannelInputStream

      public ChannelInputStream(StreamSourceChannel channel, long timeout, TimeUnit timeoutUnit)
      Construct a new instance.
      Parameters:
      channel - the channel to wrap
      timeout - the read timeout, or O for none
      timeoutUnit - the time unit for read timeouts
  • Method Details

    • getReadTimeout

      public long getReadTimeout(TimeUnit unit)
      Get the read timeout.
      Parameters:
      unit - the time unit
      Returns:
      the timeout in the given unit
    • setReadTimeout

      public void setReadTimeout(long timeout, TimeUnit unit)
      Set the read timeout. Does not affect read operations in progress.
      Parameters:
      timeout - the read timeout, or 0 for none
      unit - the time unit
    • read

      public int read() throws IOException
      Specified by:
      read in class InputStream
      Throws:
      IOException
    • read

      public int read(byte[] b) throws IOException
      Overrides:
      read in class InputStream
      Throws:
      IOException
    • read

      public int read(byte[] b, int off, int len) throws IOException
      Overrides:
      read in class InputStream
      Throws:
      IOException
    • skip

      public long skip(long n) throws IOException
      Skip bytes in the stream.
      Overrides:
      skip in class InputStream
      Parameters:
      n - the number of bytes to skip
      Returns:
      the number of bytes skipped (0 if the end of stream has been reached)
      Throws:
      IOException - if an I/O 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