JavaTM 2 Platform
Standard Ed. 6

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。不對該串流進行緩衝,並且它不支持 markreset 方法。多個共時執行緒存取該串流是安全的。關閉串流依次會導致通道被關閉。

參數:
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。否則不對所得的串流進行緩衝,並且也不支持 markreset 方法。關閉串流依次會導致通道被關閉。

參數:
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

newWriter

public static Writer newWriter(WritableByteChannel ch,
                               String csName)
建構一個 writer,它根據指定的 charset 對字元進行編碼,並將所得的位元組寫入給定的通道。

調用該方法的形式為:

 Channels.newWriter(ch, csname)
與下列表達式的作用完全相同
 Channels.newWriter(ch,
                    Charset.forName(csName)
                        .newEncoder(),
                    -1);

參數:
ch - 將向其寫入位元組的通道
csName - 所使用的 charset 的名稱
返回:
新的 writer
拋出:
UnsupportedCharsetException - 如果在此 Java 虛擬機器的實例中不提供對指定 charset 的支持

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only