|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.nio.channels
类 Channels
java.lang.Object java.nio.channels.Channels
-
public final class Channels
- extends Object
针对信道和流的实用工具方法。
此类定义了支持 java.io
包中的流类与此包中的信道类之间进行互操作的静态方法。
- 从以下版本开始:
- 1.4
方法摘要 | |
---|---|
static ReadableByteChannel |
newChannel(InputStream in) 构造从给定流读取字节的信道。 |
static WritableByteChannel |
newChannel(OutputStream out) 构造向给定流写入字节的信道。 |
static InputStream |
newInputStream(ReadableByteChannel ch) 构造从给定信道读取字节的流。 |
static OutputStream |
newOutputStream(WritableByteChannel ch) 构造向给定信道写入字节的流。 |
static Reader |
newReader(ReadableByteChannel ch, CharsetDecoder dec, int minBufferCap) 构造一个 reader,它用给定的解码器对来自给定信道的字节进行解码。 |
static Reader |
newReader(ReadableByteChannel ch, String csName) 构造一个 reader,它根据命名的 charset 对来自给定信道的字节进行解码。 |
static Writer |
newWriter(WritableByteChannel ch, CharsetEncoder enc, int minBufferCap) 构造一个 writer,它使用给定的编码器对字符进行编码,并将所得的字节写入给定的信道。 |
static Writer |
newWriter(WritableByteChannel ch, String csName) 构造一个 writer,它根据指定的 charset 对字符进行编码,并将所得的字节写入给定的信道。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
方法详细信息 |
---|
newInputStream
public static InputStream newInputStream(ReadableByteChannel ch)
-
构造从给定信道读取字节的流。
如果在基础信道处于非阻塞模式的同时调用所得流的 read 方法,则会抛出
IllegalBlockingModeException
。不对该流进行缓冲,并且它不支持mark
或reset
方法。多个并发线程访问该流是安全的。关闭流依次会导致信道被关闭。 -
- 参数:
-
ch
- 将从中读取字节的信道 - 返回:
- 新的输入流
newOutputStream
public static OutputStream newOutputStream(WritableByteChannel ch)
-
构造向给定信道写入字节的流。
如果在基础信道处于非阻塞模式的同时调用所得流的 write 方法,则会抛出
IllegalBlockingModeException
。不对该流进行缓冲。多个并发线程访问该流是安全的。关闭流依次会导致信道被关闭。 -
- 参数:
-
ch
- 将向其写入字节的信道 - 返回:
- 新的输出流
newChannel
public static ReadableByteChannel newChannel(InputStream in)
-
构造从给定流读取字节的信道。
不对所得的信道进行缓冲;只是将其 I/O 操作重定向到给定的流。关闭流会依次导致信道被关闭。
-
- 参数:
-
in
- 从中读取字节的流 - 返回:
- 新的可读字节信道
newChannel
public static WritableByteChannel newChannel(OutputStream out)
-
构造向给定流写入字节的信道。
不对所得的信道进行缓冲;只是将其 I/O 操作重定向到给定的流。关闭流会依次导致信道被关闭。
-
- 参数:
-
out
- 将向其写入字节的流 - 返回:
- 新的可写字节信道
newReader
public static Reader newReader(ReadableByteChannel ch, CharsetDecoder dec, int minBufferCap)
-
构造一个 reader,它用给定的解码器对来自给定信道的字节进行解码。
所得的流将包含一个内部输入缓冲区,其大小至少为 minBufferCap 个字节。该流的 read 方法会根据需要填充该缓冲区,方法是从基础信道读取字节;如果要读取字节时该信道处于非阻塞模式,则抛出
IllegalBlockingModeException
。否则不对所得的流进行缓冲,并且也不支持mark
或reset
方法。关闭流依次会导致信道被关闭。 -
- 参数:
-
ch
- 将从中读取字节的信道 -
dec
- 要使用的 charset 解码器 -
minBufferCap
- 内部字节缓冲区的最小容量,如果使用取决于实现的默认容量,则为 -1 - 返回:
- 新的 reader
newReader
public static Reader newReader(ReadableByteChannel ch, String csName)
-
构造一个 reader,它根据命名的 charset 对来自给定信道的字节进行解码。
调用该方法的形式为:
Channels.newReader(ch, csname)
Channels.newReader(ch, Charset.forName(csName) .newDecoder(), -1);
-
- 参数:
-
ch
- 将从中读取字节的信道 -
csName
- 要使用的 charset 的名称 - 返回:
- 新的 reader
- 抛出:
-
UnsupportedCharsetException
- 如果在此 Java 虚拟机的实例中不提供对指定 charset 的支持
newWriter
public static Writer newWriter(WritableByteChannel ch, CharsetEncoder enc, int minBufferCap)
-
构造一个 writer,它使用给定的编码器对字符进行编码,并将所得的字节写入给定的信道。
所得的流将包含一个内部输出缓冲区,其大小至少为 minBufferCap 字节。该流的 write 方法会根据需要刷新该缓冲区,方法是向基础信道写入字节;如果要写入字节时该信道处于非阻塞模式,则抛出
IllegalBlockingModeException
。不另外对所得的流进行缓冲。关闭流依次会导致信道被关闭。 -
- 参数:
-
ch
- 将向其写入字节的信道 -
enc
- 要使用的 charset 编码器 -
minBufferCap
- 内部字节缓冲区的最小容量,如果使用取决于实现的默认容量,则为 -1 - 返回:
- 新的 writer