SubStream クラス
- java.
lang. Object - InputStream
- com.
microsoft. azure. storage. blob. SubStream
- com.
public class SubStream
コンストラクターの概要
コンストラクター | 説明 |
---|---|
SubStream(InputStream source, long startIndex, long streamLength, Object lock) |
ラップされたストリームを から までパーティション分割する新しいサブストリーム インスタンスを作成します。 同じ基になるをラップする各サブストリーム インスタンスは、同時実行操作による競合状態を回避するために、同じ相互除外を共有する必要があります。 |
メソッドの概要
修飾子と型 | メソッドと説明 |
---|---|
void |
close()
サブストリームを閉じます。 |
InputStream | getInputStream() |
long | getLength() |
synchronized void |
mark(int readlimit)
サブストリーム内の現在位置をマークします。 メソッドの後続の呼び出しは、ストリームをこの格納位置に再配置します。 |
boolean |
markSupported()
サブストリーム ラッパー クラスはマーク可能な入力ストリームとのみ互換性があるため、常に true を返します。 この要件は、クラス コンストラクターで適用されます。 |
int |
read()
ラップされたストリームから次のバイトのデータを読み取ります。 値 byte は、 の範囲内の として返されます。 サブストリームの末尾に達したためにバイトが使用できない場合は、値が返されます。 このメソッドは、入力データが使用可能になるまで、ストリームの末尾が検出されるか、例外がスローされるまでブロックします。 |
synchronized int |
read(byte[] b)
ラップされたストリームからバイト数を読み取り、バッファー配列 に格納します。 実際に読み取られたバイト数は整数として返されます。 このメソッドは、入力データが使用可能か、ファイルの終わりが検出されるか、例外がスローされるまでブロックします。 の長さが 0 の場合、バイトは読み取られず、返されます。それ以外の場合は、少なくとも 1 バイトを読み取ろうとします。 サブストリームがファイルの末尾にあるためにバイトが使用できない場合は、値が返されます。それ以外の場合は、少なくとも 1 バイトが読み取られ、 に格納されます。 最初のバイト読み取りは 要素に格納され、次のバイトは に格納されます。 読み取られたバイト数は、最大で の長さと同じです。 k を実際に読み取ったバイト数にします。これらのバイトは k を通じて要素に格納され、要素 k は影響を受けません。 クラスの メソッドは、次と同じ効果を持ちます。 |
synchronized int |
read(byte[] b, int off, int len)
サブストリームから最大バイトのデータを読み取ります。 スキップと読み取りのオーバーヘッドを最小限に抑えるために、ラップされたストリームからデータをバッファーします。 ラップされたストリームは、readBuffer が読み取り要求を満たすことができない場合にのみ呼び出されます。 有効な結果を確保するには、ラップされたストリームをサブストリームから読み取る前にマークする必要があります。 これにより、ラップされたストリーム内の相対サブストリーム位置にリセットできます。 実際に読み取られたバイト数は整数として返されます。 これらの操作はすべて組み込みロック内で同期的に実行され、サブストリーム インスタンスによる他の同時要求が競合状態にならないようにします。 ラップされたストリームの読み取りの基になる呼び出しは、入力データが使用可能になるまで、ファイルの終わりが検出されるか、例外がスローされるまでブロックされます。 が 0 の場合、バイトは読み取られず、返されます。それ以外の場合は、少なくとも 1 バイトを読み取ろうとします。 サブストリームがファイルの末尾にあるために使用可能なバイトがない場合は、値が返されます。それ以外の場合は、少なくとも 1 バイトが 読み取られ、 に格納されます。 |
synchronized void |
reset()
サブストリームの位置を、メソッドが最後に呼び出されたインデックスに位置を変更します。 サブストリームの新しいリセット位置は、後続の読み取りまで有効になりません。 |
long |
skip(long n)
によってサブストリームの現在位置を進めます。 メソッドは、ラップされたストリーム クラスの基になるメソッドを呼び出しません。 バイトの実際のスキップは、後続のサブストリーム読み取り操作中に考慮されます。 |
コンストラクターの詳細
SubStream
public SubStream(InputStream source, long startIndex, long streamLength, Object lock)
ラップされたストリームを から までパーティション分割する新しいサブストリーム インスタンスを作成します。 同じ基になるをラップする各サブストリーム インスタンスは、同時実行操作による競合状態を回避するために、同じ相互除外を共有する必要があります。
Parameters:
メソッドの詳細
close
public void close()
サブストリームを閉じます。
getInputStream
public InputStream getInputStream()
getLength
public long getLength()
mark
public synchronized void mark(int readlimit)
サブストリーム内の現在位置をマークします。 メソッドの後続の呼び出しは、ストリームをこの格納位置に再配置します。
Parameters:
markSupported
public boolean markSupported()
サブストリーム ラッパー クラスはマーク可能な入力ストリームとのみ互換性があるため、常に true を返します。 この要件は、クラス コンストラクターで適用されます。
Returns:
true
read
public int read()
ラップされたストリームから次のバイトのデータを読み取ります。 値 byte は、 の範囲内の として返されます。 サブストリームの末尾に達したためにバイトが使用できない場合は、値が返されます。 このメソッドは、入力データが使用可能になるまで、ストリームの末尾が検出されるか、例外がスローされるまでブロックします。
Returns:
-1
サブストリームの末尾に達した場合は 。Throws:
read
public synchronized int read(byte[] b)
ラップされたストリームからバイト数を読み取り、バッファー配列 に格納します。 実際に読み取られたバイト数は整数として返されます。 このメソッドは、入力データが使用可能か、ファイルの終わりが検出されるか、例外がスローされるまでブロックします。
の長さが 0 の場合、バイトは読み取られず、返されます。それ以外の場合は、少なくとも 1 バイトを読み取ろうとします。 サブストリームがファイルの末尾にあるためにバイトが使用できない場合は、値が返されます。それ以外の場合は、少なくとも 1 バイトが読み取られ、 に格納されます。
最初のバイト読み取りは 要素に格納され、次のバイトは に格納されます。 読み取られたバイト数は、最大で の長さと同じです。 k を実際に読み取ったバイト数にします。これらのバイトは k を通じて要素に格納され、要素 k は影響を受けません。
クラスの メソッドは、次と同じ効果を持ちます。
Parameters:
Returns:
-1
の末尾に達したためにデータが存在しない場合は 。Throws:
b
。null
read
public synchronized int read(byte[] b, int off, int len)
サブストリームから最大バイトのデータを読み取ります。 スキップと読み取りのオーバーヘッドを最小限に抑えるために、ラップされたストリームからデータをバッファーします。 ラップされたストリームは、readBuffer が読み取り要求を満たすことができない場合にのみ呼び出されます。 有効な結果を確保するには、ラップされたストリームをサブストリームから読み取る前にマークする必要があります。 これにより、ラップされたストリーム内の相対サブストリーム位置にリセットできます。 実際に読み取られたバイト数は整数として返されます。 これらの操作はすべて組み込みロック内で同期的に実行され、サブストリーム インスタンスによる他の同時要求が競合状態にならないようにします。
ラップされたストリームの読み取りの基になる呼び出しは、入力データが使用可能になるまで、ファイルの終わりが検出されるか、例外がスローされるまでブロックされます。
が 0 の場合、バイトは読み取られず、返されます。それ以外の場合は、少なくとも 1 バイトを読み取ろうとします。 サブストリームがファイルの末尾にあるために使用可能なバイトがない場合は、値が返されます。それ以外の場合は、少なくとも 1 バイトが 読み取られ、 に格納されます。
Parameters:
b
内の開始オフセット。
Returns:
-1
の末尾に達したためにデータがそれ以上ない場合は 。Throws:
b
が null
の場合。
len
負の値、または len
より大きい場合off
b.length - off
reset
public synchronized void reset()
サブストリームの位置を、メソッドが最後に呼び出されたインデックスに位置を変更します。
サブストリームの新しいリセット位置は、後続の読み取りまで有効になりません。
skip
public long skip(long n)
によってサブストリームの現在位置を進めます。 メソッドは、ラップされたストリーム クラスの基になるメソッドを呼び出しません。 バイトの実際のスキップは、後続のサブストリーム読み取り操作中に考慮されます。
Parameters:
Returns:
適用対象
Azure SDK for Java