|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface ScatteringByteChannel
バッファーシーケンスにバイトを読み込むことができるチャネルです。
「分散」読み込み操作は、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 |
メソッドの詳細 |
---|
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
- その他の入出力エラーが発生した場合long read(ByteBuffer[] dsts) throws IOException
このメソッドを c.read(dsts) の形式で呼び出した場合、次の呼び出しと同じ結果が得られます。
c.read(dsts, 0, dsts.length);
dsts
- バイトの転送先バッファー
NonReadableChannelException
- このチャネルが読み込み可能でない場合
ClosedChannelException
- このチャネルがクローズしている場合
AsynchronousCloseException
- 読み込み操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合
ClosedByInterruptException
- 読み込み操作の進行中に、別のスレッドからの割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込み状態が設定された場合
IOException
- その他の入出力エラーが発生した場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。