|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
バッファシーケンスにバイトを読み込むことができるチャネルです。
「分散」読み込み操作は、1 回の呼び出しで、指定されたバッファシーケンス (複数可) に単一のバイトシーケンスを読み込みます。通常、分散読み込みは、特定のネットワークプロトコルやファイル形式 (データを 1 個以上の固定長ヘッダと可変長の本体からなるセグメントにまとめる働きを持つものなど) を実装する場合に役立ちます。これに類似した「収集」書き込み操作は、GatheringByteChannel
インタフェースに定義されています。
メソッドの概要 | |
long |
read(ByteBuffer[] dsts)
このチャネルのバイトシーケンスを指定されたバッファに読み込みます。 |
long |
read(ByteBuffer[] dsts,
int offset,
int length)
このチャネルのバイトシーケンスを指定されたバッファのサブシーケンスに読み込みます。 |
インタフェース java.nio.channels.ReadableByteChannel から継承したメソッド |
read |
インタフェース java.nio.channels.Channel から継承したメソッド |
close, isOpen |
メソッドの詳細 |
public long read(ByteBuffer[] dsts, int offset, int length) throws IOException
このメソッド呼び出しは、このチャネルから最大 r バイトを読み取ろうとします。r は、このメソッドの呼び出し時に指定されたバッファ配列の指定されたサブシーケンスに含まれる合計バイト数です。
dsts[offset].remaining()
+ dsts[offset+1].remaining()
+ ... + dsts[offset+length-1].remaining()
長さ n (0 <= n <= r) のバイトシーケンスが読み取られるとします。このシーケンスの最初の dsts[offset].remaining() バイトまでがバッファ dsts[offset] に転送され、次の dsts[offset+1].remaining() バイトまでがバッファ dsts[offset+1] に転送されます。この処理は、すべてのバイトシーケンスが指定されたバッファに転送されるまで繰り返されます。各バッファには最大限のバイトが転送されるため、最終更新バッファを除く個々の更新バッファの最終的な位置は、このバッファのリミットと等しくなります。
このメソッドはいつでも呼び出せます。ただし、その他のスレッドがこのチャネルに対して読み込み操作を開始している場合、このメソッドの呼び出しは最初の操作が終わるまでブロックされます。
dsts
- バイトの転送先バッファoffset
- 最初のバイトの転送先となるバッファ配列内のオフセット。dsts.length 以下のゼロまたは正の数length
- アクセス可能な最大バッファ数。dsts.length - offset 以下のゼロまたは正の数
IndexOutOfBoundsException
- offset パラメータと length パラメータの前提条件が満たされていない場合
NonReadableChannelException
- このチャネルが読み込み可能でない場合
ClosedChannelException
- このチャネルがクローズしている場合
AsynchronousCloseException
- 読み込み操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合
ClosedByInterruptException
- 読み込み操作の進行中に別のスレッドからの割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込み状態が設定された場合
IOException
- その他の入出力エラーが発生した場合public long read(ByteBuffer[] dsts) throws IOException
このメソッドを c.read(dsts) の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。
c.read(dsts, 0, srcs.length);
dsts
- バイトの転送先バッファ
NonReadableChannelException
- このチャネルが読み込み可能でない場合
ClosedChannelException
- このチャネルがクローズしている場合
AsynchronousCloseException
- 読み込み操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合
ClosedByInterruptException
- 読み込み操作の進行中に別のスレッドからの割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込み状態が設定された場合
IOException
- その他の入出力エラーが発生した場合
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.