Interface Channel

All Superinterfaces:
AutoCloseable, Closeable
All Known Subinterfaces:
ByteChannel, GatheringByteChannel, InterruptibleChannel, ReadableByteChannel, ScatteringByteChannel, WritableByteChannel
All Known Implementing Classes:
AbstractInterruptibleChannel, AbstractSelectableChannel, DatagramChannel, FileChannel, Pipe.SinkChannel, Pipe.SourceChannel, SelectableChannel, ServerSocketChannel, SocketChannel

public interface Channel
extends Closeable
A channel is a conduit to I/O services covering such items as files, sockets, hardware devices, I/O ports or some software component.

Channels are open upon creation, and can be closed explicitly. Once a channel is closed it cannot be re-opened, and any attempts to perform I/O operations on the closed channel result in a ClosedChannelException.

Particular implementations or sub-interfaces of Channel dictate whether they are thread-safe or not.

  • Method Summary

    Modifier and Type Method Description
    void close()
    Closes an open channel.
    boolean isOpen()
    Returns true if this channel is open.
  • Method Details

    • isOpen

      boolean isOpen()
      Returns true if this channel is open.
    • close

      void close() throws IOException
      Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.

      If an attempt is made to perform an operation on a closed channel then a ClosedChannelException will be thrown on that attempt.

      If multiple threads attempt to simultaneously close a channel, then only one thread will run the closure code, and others will be blocked until the first returns.

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException - if a problem occurs closing the channel.