此类定义了静态方法,支持java.io
包的流类与此包的通道类的互操作。
- 自版本:
- 1.4
-
Method Summary
Modifier and TypeMethodDescriptionstatic ReadableByteChannel
构造一个从给定流读取字节的通道。static WritableByteChannel
newChannel
(OutputStream out) 构造一个将字节写入给定流的通道。static InputStream
构造一个从给定通道读取字节的流。static InputStream
构造一个从给定通道读取字节的流。static OutputStream
构造一个将字节写入给定通道的流。static OutputStream
构造一个将字节写入给定通道的流。static Reader
newReader
(ReadableByteChannel ch, String csName) 根据命名的字符集构造一个从给定通道解码字节的读取器。static Reader
newReader
(ReadableByteChannel ch, Charset charset) 根据给定字符集构造一个从给定通道解码字节的读取器。static Reader
newReader
(ReadableByteChannel ch, CharsetDecoder dec, int minBufferCap) 使用给定解码器构造一个从给定通道解码字节的读取器。static Writer
newWriter
(WritableByteChannel ch, String csName) 根据命名的字符集对字符进行编码并将结果字节写入给定通道的写入器。static Writer
newWriter
(WritableByteChannel ch, Charset charset) 根据给定字符集对字符进行编码并将结果字节写入给定通道的写入器。static Writer
newWriter
(WritableByteChannel ch, CharsetEncoder enc, int minBufferCap) 使用给定编码器对字符进行编码并将结果字节写入给定通道的写入器。
-
Method Details
-
newInputStream
构造一个从给定通道读取字节的流。如果在底层通道处于非阻塞模式时调用结果流的
read
和transferTo
方法,则会抛出IllegalBlockingModeException
。如果调用transferTo
方法将字节传输到以非阻塞模式写入底层通道的输出流,则还会抛出IllegalBlockingModeException
。该流不会被缓冲,并且不支持mark
或reset
方法。该流可安全地被多个并发线程访问。关闭流将导致通道关闭。- 参数:
-
ch
- 将读取字节的通道 - 返回:
- 一个新的输入流
-
newOutputStream
构造一个将字节写入给定通道的流。如果在底层通道处于非阻塞模式时调用结果流的
write
方法,则会抛出IllegalBlockingModeException
。该流不会被缓冲。该流可安全地被多个并发线程访问。关闭流将导致通道关闭。- 参数:
-
ch
- 将写入字节的通道 - 返回:
- 一个新的输出流
-
newInputStream
- 参数:
-
ch
- 将读取字节的通道 - 返回:
- 一个新的输入流
- 自版本:
- 1.7
-
newOutputStream
构造一个将字节写入给定通道的流。该流不会被缓冲。该流可安全地被多个并发线程访问。关闭流将导致通道关闭。
- 参数:
-
ch
- 将写入字节的通道 - 返回:
- 一个新的输出流
- 自版本:
- 1.7
-
newChannel
构造一个从给定流读取字节的通道。结果通道不会被缓冲;它将简单地将其I/O操作重定向到给定流。关闭通道将导致流关闭。
- 参数:
-
in
- 要从中读取字节的流 - 返回:
- 一个新的可读字节通道
-
newChannel
构造一个将字节写入给定流的通道。结果通道不会被缓冲;它将简单地将其I/O操作重定向到给定流。关闭通道将导致流关闭。
- 参数:
-
out
- 要写入字节的流 - 返回:
- 一个新的可写字节通道
-
newReader
使用给定解码器从给定通道解码字节构造读取器。结果流将包含至少
minBufferCap
字节的内部输入缓冲区。根据需要,流的read
方法将通过从底层通道读取字节来填充缓冲区;如果在要读取字节时通道处于非阻塞模式,则将抛出IllegalBlockingModeException
。结果流不会被缓冲,也不支持mark
或reset
方法。关闭流将导致通道关闭。- 参数:
-
ch
- 将读取字节的通道 -
dec
- 要使用的字符集解码器 -
minBufferCap
- 内部字节缓冲区的最小容量,如果要使用实现相关的默认容量,则为-1
- 返回:
- 一个新的读取器
-
newReader
根据命名的字符集从给定通道解码字节构造读取器。形式为
Channels.newReader(ch, csname)
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
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)
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
-
newWriter
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'swrite
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 anIllegalBlockingModeException
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
- 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 - Returns:
- A new writer
-
newWriter
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)
Channels.newWriter(ch, Charset.forName(csName))
- 参数:
-
ch
- 将要写入字节的通道 -
csName
- 要使用的字符集的名称 - 返回值:
- 一个新的写入器
- 抛出:
-
UnsupportedCharsetException
- 如果在此Java虚拟机实例中不支持命名字符集
-
newWriter
构造一个编码字符并将结果字节写入给定通道的写入器。此方法的调用形式
Channels.newWriter(ch, charset)
Channels.newWriter(ch, charset.newEncoder(), -1)
对于格式错误输入和无法映射字符的错误,写入器的默认操作是将其报告。当需要更多控制错误处理时,应使用带有CharsetEncoder的构造函数。
- 参数:
-
ch
- 将要写入字节的通道 -
charset
- 要使用的字符集 - 返回值:
- 一个新的写入器
-