Added in API level 1

Channels

class Channels
kotlin.Any
   ↳ java.nio.channels.Channels

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.

Summary

Public methods
static ReadableByteChannel!

Constructs a channel that reads bytes from the given stream.

static WritableByteChannel!

Constructs a channel that writes bytes to the given stream.

static InputStream!

Constructs a stream that reads bytes from the given channel.

static InputStream!

Constructs a stream that reads bytes from the given channel.

static OutputStream!

Constructs a stream that writes bytes to the given channel.

static OutputStream!

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(ch: ReadableByteChannel!, dec: CharsetDecoder!, minBufferCap: Int)

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(ch: WritableByteChannel!, enc: CharsetEncoder!, minBufferCap: Int)

Constructs a writer that encodes characters using the given encoder and writes the resulting bytes to the given channel.

Public methods

newChannel

Added in API level 1
static fun newChannel(in: InputStream!): ReadableByteChannel!

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. Closing the channel will in turn cause the stream to be closed.

Parameters
in InputStream!: The stream from which bytes are to be read
Return
ReadableByteChannel! A new readable byte channel

newChannel

Added in API level 1
static fun newChannel(out: OutputStream!): WritableByteChannel!

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 OutputStream!: The stream to which bytes are to be written
Return
WritableByteChannel! A new writable byte channel

newInputStream

Added in API level 26
static fun newInputStream(ch: AsynchronousByteChannel!): InputStream!

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 AsynchronousByteChannel!: The channel from which bytes will be read
Return
InputStream! A new input stream

newInputStream

Added in API level 1
static fun newInputStream(ch: ReadableByteChannel!): InputStream!

Constructs a stream that reads bytes from the given channel.

The read 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, 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 ReadableByteChannel!: The channel from which bytes will be read
Return
InputStream! A new input stream

newOutputStream

Added in API level 26
static fun newOutputStream(ch: AsynchronousByteChannel!): OutputStream!

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 AsynchronousByteChannel!: The channel to which bytes will be written
Return
OutputStream! A new output stream

newOutputStream

Added in API level 1
static fun newOutputStream(ch: WritableByteChannel!): OutputStream!

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 WritableByteChannel!: The channel to which bytes will be written
Return
OutputStream! A new output stream

newReader

Added in API level 1
static fun newReader(
    ch: ReadableByteChannel!,
    csName: String!
): Reader!

Constructs a reader that decodes bytes from the given channel according to the named charset.

An invocation of this method of the form

<code>Channels.newReader(ch, csname)
  </code>
behaves in exactly the same way as the expression
<code>Channels.newReader(ch, Charset.forName(csName))
  </code>
Parameters
ch ReadableByteChannel!: The channel from which bytes will be read
csName String!: The name of the charset to be used
Return
Reader! A new reader
Exceptions
java.nio.charset.UnsupportedCharsetException If no support for the named charset is available in this instance of the Java virtual machine

newReader

Added in API level 33
static fun newReader(
    ch: ReadableByteChannel!,
    charset: Charset!
): Reader!

Constructs a reader that decodes bytes from the given channel according to the given charset.

An invocation of this method of the form

<code>Channels.newReader(ch, charset)
  </code>
behaves in exactly the same way as the expression
<code>Channels.newReader(ch, Charset.forName(csName).newDecoder(), -1)
  </code>

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 java.nio.charset.CharsetDecoder should be used.

Parameters
ch ReadableByteChannel!: The channel from which bytes will be read
charset Charset!: The charset to be used
Return
Reader! A new reader

newReader

Added in API level 1
static fun newReader(
    ch: ReadableByteChannel!,
    dec: CharsetDecoder!,
    minBufferCap: Int
): Reader!

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 ReadableByteChannel!: The channel from which bytes will be read
dec CharsetDecoder!: The charset decoder to be used
minBufferCap Int: The minimum capacity of the internal byte buffer, or -1 if an implementation-dependent default capacity is to be used
Return
Reader! A new reader

newWriter

Added in API level 1
static fun newWriter(
    ch: WritableByteChannel!,
    csName: String!
): Writer!

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

<code>Channels.newWriter(ch, csname)
  </code>
behaves in exactly the same way as the expression
<code>Channels.newWriter(ch, Charset.forName(csName))
  </code>
Parameters
ch WritableByteChannel!: The channel to which bytes will be written
csName String!: The name of the charset to be used
Return
Writer! A new writer
Exceptions
java.nio.charset.UnsupportedCharsetException If no support for the named charset is available in this instance of the Java virtual machine

newWriter

Added in API level 33
static fun newWriter(
    ch: WritableByteChannel!,
    charset: Charset!
): Writer!

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

<code>Channels.newWriter(ch, charset)
  </code>
behaves in exactly the same way as the expression
<code>Channels.newWriter(ch, Charset.forName(csName).newEncoder(), -1)
  </code>

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 java.nio.charset.CharsetEncoder should be used.

Parameters
ch WritableByteChannel!: The channel to which bytes will be written
charset Charset!: The charset to be used
Return
Writer! A new writer

newWriter

Added in API level 1
static fun newWriter(
    ch: WritableByteChannel!,
    enc: CharsetEncoder!,
    minBufferCap: Int
): Writer!

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.

Parameters
ch WritableByteChannel!: The channel to which bytes will be written
enc CharsetEncoder!: The charset encoder to be used
minBufferCap Int: The minimum capacity of the internal byte buffer, or -1 if an implementation-dependent default capacity is to be used
Return
Writer! A new writer