Class Channels

java.lang.Object
java.nio.channels.Channels

public final class Channels extends Object
Utility methods for channels and streams.

This class defines static methods that support the interoperation of the stream classes of the java.io package with the channel classes of this package.

Since:
1.4
  • Method Summary

    Modifier and Type
    Method
    Description
    Constructs a channel that reads bytes from the given stream.
    Constructs a channel that writes bytes to the given stream.
    Constructs a stream that reads bytes from the given channel.
    Constructs a stream that reads bytes from the given channel.
    Constructs a stream that writes bytes to the given channel.
    Constructs a stream that writes bytes to the given channel.
    static Reader
    Constructs a reader that decodes bytes from the given channel according to the named charset.
    static Reader
    Constructs a reader that decodes bytes from the given channel according to the given charset.
    static Reader
    newReader(ReadableByteChannel ch, CharsetDecoder dec, int minBufferCap)
    Constructs a reader that decodes bytes from the given channel using the given decoder.
    static Writer
    Constructs a writer that encodes characters according to the named charset and writes the resulting bytes to the given channel.
    static Writer
    Constructs a writer that encodes characters according to the given charset and writes the resulting bytes to the given channel.
    static Writer
    newWriter(WritableByteChannel ch, CharsetEncoder enc, int minBufferCap)
    Constructs a writer that encodes characters using the given encoder and writes the resulting bytes to the given channel.

    Methods declared in class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    Modifier and Type
    Method
    Description
    protected Object
    Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.
    boolean
    Compares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    May cause performance issues, deadlocks and hangs.
    final Class<? extends Object>
    Answers the unique instance of java.lang.Class which represents the class of the receiver.
    int
    Answers an integer hash code for the receiver.
    final void
    Causes one thread which is waiting on the receiver to be made ready to run.
    final void
    Causes all threads which are waiting on the receiver to be made ready to run.
    Answers a string containing a concise, human-readable description of the receiver.
    final void
    Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated by notify or notifyAll).
    final void
    wait(long time)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
    final void
    wait(long time, int frac)
    Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated by notify or notifyAll) or the expiration of the timeout.
  • Method Details

    • newInputStream

      public static InputStream newInputStream(ReadableByteChannel ch)
      Constructs a stream that reads bytes from the given channel.

      The read and transferTo methods of the resulting stream will throw an IllegalBlockingModeException if invoked while the underlying channel is in non-blocking mode. The transferTo method will also throw an IllegalBlockingModeException if invoked to transfer bytes to an output stream that writes to an underlying channel in non-blocking mode. The stream will not be buffered, and it will not support the mark or reset methods. The stream will be safe for access by multiple concurrent threads. Closing the stream will in turn cause the channel to be closed.

      Parameters:
      ch - The channel from which bytes will be read
      Returns:
      A new input stream
    • newOutputStream

      public static OutputStream newOutputStream(WritableByteChannel ch)
      Constructs a stream that writes bytes to the given channel.

      The write methods of the resulting stream will throw an IllegalBlockingModeException if invoked while the underlying channel is in non-blocking mode. The stream will not be buffered. The stream will be safe for access by multiple concurrent threads. Closing the stream will in turn cause the channel to be closed.

      Parameters:
      ch - The channel to which bytes will be written
      Returns:
      A new output stream
    • newInputStream

      public static InputStream newInputStream(AsynchronousByteChannel ch)
      Constructs a stream that reads bytes from the given channel.

      The stream will not be buffered, and it will not support the mark or reset methods. The stream will be safe for access by multiple concurrent threads. Closing the stream will in turn cause the channel to be closed.

      Parameters:
      ch - The channel from which bytes will be read
      Returns:
      A new input stream
      Since:
      1.7
    • newOutputStream

      public static OutputStream newOutputStream(AsynchronousByteChannel ch)
      Constructs a stream that writes bytes to the given channel.

      The stream will not be buffered. The stream will be safe for access by multiple concurrent threads. Closing the stream will in turn cause the channel to be closed.

      Parameters:
      ch - The channel to which bytes will be written
      Returns:
      A new output stream
      Since:
      1.7
    • newChannel

      public static ReadableByteChannel newChannel(InputStream in)
      Constructs a channel that reads bytes from the given stream.

      The resulting channel will not be buffered; it will simply redirect its I/O operations to the given stream. Reading from the resulting channel will read from the input stream and thus block until input is available or end of file is reached. Closing the channel will in turn cause the stream to be closed.

      Parameters:
      in - The stream from which bytes are to be read
      Returns:
      A new readable byte channel
    • newChannel

      public static WritableByteChannel newChannel(OutputStream out)
      Constructs a channel that writes bytes to the given stream.

      The resulting channel will not be buffered; it will simply redirect its I/O operations to the given stream. Closing the channel will in turn cause the stream to be closed.

      Parameters:
      out - The stream to which bytes are to be written
      Returns:
      A new writable byte channel
    • newReader

      public static Reader newReader(ReadableByteChannel ch, CharsetDecoder dec, int minBufferCap)
      Constructs a reader that decodes bytes from the given channel using the given decoder.

      The resulting stream will contain an internal input buffer of at least minBufferCap bytes. The stream's read methods will, as needed, fill the buffer by reading bytes from the underlying channel; if the channel is in non-blocking mode when bytes are to be read then an IllegalBlockingModeException will be thrown. The resulting stream will not otherwise be buffered, and it will not support the mark or reset methods. Closing the stream will in turn cause the channel to be closed.

      Parameters:
      ch - The channel from which bytes will be read
      dec - The charset decoder to be used
      minBufferCap - The minimum capacity of the internal byte buffer, or -1 if an implementation-dependent default capacity is to be used
      Returns:
      A new reader
    • newReader

      public static Reader newReader(ReadableByteChannel ch, String csName)
      Constructs a reader that decodes bytes from the given channel according to the named charset.

      An invocation of this method of the form

          Channels.newReader(ch, csname)
      
      behaves in exactly the same way as the expression
          Channels.newReader(ch, Charset.forName(csName))
      
      Parameters:
      ch - The channel from which bytes will be read
      csName - The name of the charset to be used
      Returns:
      A new reader
      Throws:
      UnsupportedCharsetException - If no support for the named charset is available in this instance of the Java virtual machine
    • newReader

      public static Reader newReader(ReadableByteChannel ch, Charset charset)
      Constructs a reader that decodes bytes from the given channel according to the given charset.

      An invocation of this method of the form

          Channels.newReader(ch, charset)
      
      behaves in exactly the same way as the expression
          Channels.newReader(ch, charset.newDecoder(), -1)
      

      The reader's default action for malformed-input and unmappable-character errors is to report them. When more control over the error handling is required, the constructor that takes a CharsetDecoder should be used.

      Parameters:
      ch - The channel from which bytes will be read
      charset - The charset to be used
      Returns:
      A new reader
      Since:
      10
    • newWriter

      public static Writer newWriter(WritableByteChannel ch, CharsetEncoder enc, int minBufferCap)
      Constructs a writer that encodes characters using the given encoder and writes the resulting bytes to the given channel.

      The resulting stream will contain an internal output buffer of at least minBufferCap bytes. The stream's write methods will, as needed, flush the buffer by writing bytes to the underlying channel; if the channel is in non-blocking mode when bytes are to be written then an IllegalBlockingModeException will be thrown. The resulting stream will not otherwise be buffered. Closing the stream will in turn cause the channel to be closed.

      Implementation Note:
      The value of minBufferCap is ignored.
      Parameters:
      ch - The channel to which bytes will be written
      enc - The charset encoder to be used
      minBufferCap - The minimum capacity of the internal byte buffer, or -1 if an implementation-dependent default capacity is to be used. The value of minBufferCap may be ignored
      Returns:
      A new writer
    • newWriter

      public static Writer newWriter(WritableByteChannel ch, String csName)
      Constructs a writer that encodes characters according to the named charset and writes the resulting bytes to the given channel.

      An invocation of this method of the form

          Channels.newWriter(ch, csname)
      
      behaves in exactly the same way as the expression
          Channels.newWriter(ch, Charset.forName(csName))
      
      Parameters:
      ch - The channel to which bytes will be written
      csName - The name of the charset to be used
      Returns:
      A new writer
      Throws:
      UnsupportedCharsetException - If no support for the named charset is available in this instance of the Java virtual machine
    • newWriter

      public static Writer newWriter(WritableByteChannel ch, Charset charset)
      Constructs a writer that encodes characters according to the given charset and writes the resulting bytes to the given channel.

      An invocation of this method of the form

          Channels.newWriter(ch, charset)
      
      behaves in exactly the same way as the expression
          Channels.newWriter(ch, charset.newEncoder(), -1)
      

      The writer's default action for malformed-input and unmappable-character errors is to report them. When more control over the error handling is required, the constructor that takes a CharsetEncoder should be used.

      Parameters:
      ch - The channel to which bytes will be written
      charset - The charset to be used
      Returns:
      A new writer
      Since:
      10