クラスByteArrayInputStream
- すべての実装されたインタフェース:
Closeable,AutoCloseable
ByteArrayInputStreamは、ストリームから読み込むことができるバイトを格納する内部バッファを保持しています。 内部カウンタによって、readメソッドで次に読み込まれるバイトを追跡します。
ByteArrayInputStreamをクローズしても効果はありません。 このクラスのメソッドは、IOExceptionを生成せずにストリームがクローズされた後にコールできます。
- 導入されたバージョン:
- 1.0
- 関連項目:
-
フィールドのサマリー
フィールド -
コンストラクタのサマリー
コンストラクタコンストラクタ説明ByteArrayInputStream(byte[] buf) bufをバッファ配列として使うように、ByteArrayInputStreamを作成します。ByteArrayInputStream(byte[] buf, int offset, int length) bufをバッファ配列として使用するByteArrayInputStreamを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明intこの入力ストリームから、読み込むことができる(またはスキップできる)残りのバイト数を返します。voidclose()ByteArrayInputStreamをクローズしても効果はありません。voidmark(int readAheadLimit) ストリームに現在のマーク位置を設定します。booleanこのInputStreamがmark/resetをサポートしているかどうかを判定します。intread()この入力ストリームからデータの次のバイトを読み込みます。intread(byte[] b, int off, int len) 最大lenバイトのデータを、この入力ストリームからバイト配列に読み込みます。byte[]入力ストリームから残りのすべてのバイトを読み取ります。intreadNBytes(byte[] b, int off, int len) 入力ストリームからリクエストされたバイト数を、指定されたバイト配列に読み取ります。voidreset()マーク位置へバッファをリセットします。longskip(long n) この入力ストリームをnバイトだけスキップします。クラスjava.io.InputStreamで宣言されたメソッド
nullInputStream, read, readNBytes, skipNBytes, transferTo
-
フィールド詳細
-
buf
protected byte[] bufストリームの作成側によって提供されたバイトの配列です。 要素buf[0]からbuf[count-1]は、ストリームから読み込むことができる唯一のバイトです。要素buf[pos]は次に読み込まれるバイトです。 -
pos
protected int pos入力ストリームバッファから読み取る次のバイトのインデックス。 この値は常に、負以外でなければならず、countの値より大きくてもいけません。 入力ストリーム・バッファから読み込まれる次のバイトは、buf[pos]になります。 -
mark
protected int markストリームの中で、現在マークが設定されている位置を示します。 ByteArrayInputStreamオブジェクトは、構築時にデフォルトで位置ゼロにマークされます。 このようなオブジェクトは、mark()メソッドによりバッファ内のほかの位置にマークを設定できます。 バッファの現在位置は、reset()メソッドによりこの位置に設定されます。マークが設定されていない場合、マークの値はコンストラクタに渡されたオフセットになります(オフセットが渡されない場合は0)。
- 導入されたバージョン:
- 1.1
-
count
protected int countインデックスは、入力ストリームバッファ内の最後の有効なバイトより1大きい値です。 この値は常に、負以外でなければならず、bufの長さより大きくてもいけません。 これは、入力ストリーム・バッファから読み込まれるbuf内の最後のバイト位置より1つ大きい値です。
-
-
コンストラクタの詳細
-
ByteArrayInputStream
public ByteArrayInputStream(byte[] buf) bufをバッファ配列として使うように、ByteArrayInputStreamを作成します。 バッファ配列はコピーされません。posの初期値は0であり、countの初期値はbufの長さです。- パラメータ:
buf- 入力バッファ。
-
ByteArrayInputStream
public ByteArrayInputStream(byte[] buf, int offset, int length) bufをバッファ配列として使用するByteArrayInputStreamを作成します。posの初期値はoffsetであり、countの初期値はoffset+lengthとbuf.lengthの小さい方です。 バッファ配列はコピーされません。 バッファのマークは指定したオフセットに設定されます。- パラメータ:
buf- 入力バッファ。offset- バッファからのバイト読込み開始オフセット。length- バッファから読み込む最大バイト数。
-
-
メソッドの詳細
-
read
public int read()この入力ストリームからデータの次のバイトを読み込みます。 バイト値は、0-255の範囲のintとして返されます。 ストリームの終わりに達したために読み込むバイトがない場合は、-1が返されます。この
readメソッドはブロックできません。- 定義:
read、クラスInputStream- 戻り値:
- データの次のバイト。ストリームの終わりに達した場合は
-1。
-
read
public int read(byte[] b, int off, int len) 最大lenバイトのデータを、この入力ストリームからバイト配列に読み込みます。posがcountと一致する場合は、ファイルの終わりに達したことを示す-1が返されます。 それ以外の場合、読み込むバイト数kは、lenとcount-posの小さい方になります。kが正の場合、System.arraycopyと同じ形式で、buf[pos]からbuf[pos+k-1]のバイトがb[off]からb[off+k-1]にコピーされます。 値kがposに加えられ、kが返されます。InputStreamのoverridden methodとは異なり、ストリームの末尾に達し、len == 0になった場合、このメソッドはゼロのかわりに-1を返します。この
readメソッドはブロックできません。- オーバーライド:
read、クラスInputStream- パラメータ:
b- データの読込み先のバッファ。off- データが書き込まれる配列bの開始オフセット。len- 読み込む最大バイト数。- 戻り値:
- バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は
-1。 - スロー:
NullPointerException-bがnullである場合。IndexOutOfBoundsException-offが負の値の場合、lenが負の値の場合、あるいはlenがb.length - offより大きい場合- 関連項目:
-
readAllBytes
public byte[] readAllBytes()次のクラスからコピーされた説明:InputStream入力ストリームから残りのすべてのバイトを読み取ります。 このメソッドは、残りのすべてのバイトが読み取られてストリームの終わりが検出されるか、例外がスローされるまでブロックします。 このメソッドでは入力ストリームは閉じられません。このストリームがストリームの最後に達すると、このメソッドをさらに呼び出すと、空のバイト配列が返されます。
このメソッドが、すべてのバイトを1つのバイト配列に読み取ると都合が良い簡単なケースで使用するものであることに注意してください。 大量のデータを含む入力ストリームの読取りを目的としていません。
入力ストリームが「非同期クローズ」の場合、または読取り中に中断されたスレッドの動作は、入力ストリーム固有であるため、指定されません。
入力ストリームからの読取り中にI/Oエラーが発生した場合、一部のバイト(すべてではない)が読み取られた後でエラーが発生する可能性があります。 その結果、入力ストリームがストリームの終わりに配置されず、整合性のない状態になる可能性があります。 I/Oエラーが発生した場合は、ストリームをすぐにクローズすることを強くお薦めします。
- オーバーライド:
- クラス
InputStreamのreadAllBytes - 戻り値:
- この入力ストリームから読み込まれたバイトを含むバイト配列
-
readNBytes
public int readNBytes(byte[] b, int off, int len) 次のクラスからコピーされた説明:InputStream入力ストリームからリクエストされたバイト数を、指定されたバイト配列に読み取ります。 このメソッドは、入力データのlenバイトが読み取られるか、ストリームの終わりが検出されるか、または例外がスローされるまでブロックします。 実際に読み取られたバイト数(おそらくゼロ)が返されます。 このメソッドでは入力ストリームは閉じられません。lenバイトが読み取られる前にストリームの終わりに達した場合、実際の読取りバイト数が戻されます。 このストリームがストリームの最後に到達すると、このメソッドをさらに呼び出すとゼロが返されます。lenがゼロの場合、バイトは読み取られず、0が戻されます。それ以外の場合、lenバイトまでの読取りが試行されます。最初のバイト読取りは、要素
b[off]、次のバイト読取りはb[off+1]などに格納されます。 読み込まれるバイト数の上限はlenと同じです。 kを実際に読み取られるバイト数にします。これらのバイトは、要素b[off]からb[off+k-1]に格納され、要素b[off+k]からb[off+len-1]は影響を受けません。入力ストリームが「非同期クローズ」の場合、または読取り中に中断されたスレッドの動作は、入力ストリーム固有であるため、指定されません。
入力ストリームからの読取りでI/Oエラーが発生した場合、
bの一部(すべてではない)のバイトが入力ストリームからのデータで更新された後、これが実行される可能性があります。 したがって、入力ストリームとbは一貫性のない状態になる可能性があります。 I/Oエラーが発生した場合は、ストリームをすぐにクローズすることを強くお薦めします。- オーバーライド:
- クラス
InputStreamのreadNBytes - パラメータ:
b- データが読み込まれるバイト配列off- データが書き込まれるbの開始オフセットlen- 読み込む最大バイト数- 戻り値:
- バッファに読み込まれる実際のバイト数
-
skip
public long skip(long n) この入力ストリームをnバイトだけスキップします。 ストリームの終わりに達した場合は、スキップされるバイト数が少なくなることがあります。 実際にスキップされるバイト数kは、nとcount-posの小さい方になります。 値kがposに加えられ、kが返されます。- オーバーライド:
skip、クラスInputStream- パラメータ:
n- スキップされるバイト数。- 戻り値:
- 実際にスキップされたバイト数。
- 関連項目:
-
available
public int available()この入力ストリームから、読み込むことができる(またはスキップできる)残りのバイト数を返します。戻り値は、
count - posで、入力バッファから読み込む残りのバイト数です。- オーバーライド:
available、クラスInputStream- 戻り値:
- ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)残りのバイト数。
-
markSupported
public boolean markSupported()このInputStreamがmark/resetをサポートしているかどうかを判定します。- オーバーライド:
markSupported、クラスInputStream- 実装要件:
ByteArrayInputStreamのmarkSupportedメソッドは常にtrueを返します。- 戻り値:
- true
- 導入されたバージョン:
- 1.1
- 関連項目:
-
mark
public void mark(int readAheadLimit) ストリームに現在のマーク位置を設定します。 ByteArrayInputStreamオブジェクトは、構築時にデフォルトで位置ゼロにマークされます。 このようなオブジェクトは、このメソッドによりバッファ内のほかの位置にマークを設定できます。マークが設定されていない場合、マークの値はコンストラクタに渡されたオフセットになります(オフセットが渡されない場合は0)。
ノート: このクラスの
readAheadLimitに意味はありません。- オーバーライド:
mark、クラスInputStream- パラメータ:
readAheadLimit- マーク位置が無効になる前に読込み可能なバイト数の上限。- 導入されたバージョン:
- 1.1
- 関連項目:
-
reset
public void reset()マーク位置へバッファをリセットします。 ほかの位置にマークが設定されている場合またはコンストラクタにオフセットが指定されている場合を除き、マーク位置は0に設定されます。- オーバーライド:
reset、クラスInputStream- 関連項目:
-
close
public void close() throws IOExceptionByteArrayInputStreamをクローズしても効果はありません。 このクラスのメソッドは、IOExceptionを生成せずにストリームがクローズされた後にコールできます。- 定義:
close、インタフェースAutoCloseable- 定義:
close、インタフェースCloseable- オーバーライド:
close、クラスInputStream- スロー:
IOException- 入出力エラーが発生した場合。
-