- すべての実装されたインタフェース:
Closeable
,AutoCloseable
ByteArrayInputStream
は、ストリームから読み込むことができるバイトを格納する内部バッファを保持しています。 内部カウンタによって、read
メソッドで次に読み込まれるバイトを追跡します。
ByteArrayInputStream
を閉じても、何の影響もありません。 IOException
を生成せずにストリームが閉じられたあとで、このクラスのメソッドを呼び出すことができます。
- 導入されたバージョン:
- 1.0
- 関連項目:
StringBufferInputStream
-
フィールドのサマリー
フィールド -
コンストラクタのサマリー
コンストラクタコンストラクタ説明ByteArrayInputStream(byte[] buf)
buf
をバッファ配列として使うように、ByteArrayInputStream
を作成します。ByteArrayInputStream(byte[] buf, int offset, int length)
buf
をバッファ配列として使用するByteArrayInputStream
を作成します。 -
メソッドのサマリー
修飾子と型メソッド説明int
この入力ストリームから、読み込むことができる(またはスキップできる)残りのバイト数を返します。void
close()
ByteArrayInputStream
を閉じても、何の影響もありません。void
mark(int readAheadLimit)
ストリームに現在のマーク位置を設定します。boolean
このInputStream
がmark/resetをサポートしているかどうかを判定します。int
read()
この入力ストリームからデータの次のバイトを読み込みます。int
read(byte[] b, int off, int len)
最大len
バイトのデータを、この入力ストリームからバイト配列に読み込みます。byte[]
残りのすべてのバイトを入力ストリームから読み込みます。int
readNBytes(byte[] b, int off, int len)
リクエストされたバイト数を入力ストリームから指定されたバイト配列に読み込みます。void
reset()
マーク位置へバッファをリセットします。long
skip(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
が返されます。この
read
メソッドはブロックできません。- オーバーライド:
read
、クラス:InputStream
- パラメータ:
b
- データの読込み先のバッファ。off
- 転送先配列の開始オフセットb
len
- 読み込まれる最大バイト数。- 戻り値:
- バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は
-1
。 - 例外:
NullPointerException
-b
がnull
である場合。IndexOutOfBoundsException
-off
が負の値の場合、len
が負の値の場合、あるいはlen
がb.length - off
より大きい場合- 関連項目:
InputStream.read()
-
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
バイトが読み込まれる前にストリームの終わりに達した場合、実際に読み込まれたバイト数が返されます。 このストリームがストリームの終わりに達すると、このメソッドをさらに呼び出しても0が返されます。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
の一部であるがすべてではないバイトが入力ストリームからのデータで更新された後に、I/Oエラーが発生する可能性があります。 その結果、入力ストリームと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
- スキップされるバイト数。- 戻り値:
- 実際にスキップされたバイト数。
- 関連項目:
InputStream.skipNBytes(long)
-
available
public int available()この入力ストリームから、読み込むことができる(またはスキップできる)残りのバイト数を返します。戻り値は、
count - pos
で、入力バッファから読み込む残りのバイト数です。- オーバーライド:
available
、クラス:InputStream
- 戻り値:
- ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)残りのバイト数。
-
markSupported
public boolean markSupported()このInputStream
がmark/resetをサポートしているかどうかを判定します。ByteArrayInputStream
のmarkSupported
メソッドは常にtrue
を返します。- オーバーライド:
markSupported
、クラス:InputStream
- 戻り値:
- このストリーム・インスタンスがmarkおよびresetメソッドをサポートしている場合は
true
、それ以外の場合はfalse
。 - 導入されたバージョン:
- 1.1
- 関連項目:
InputStream.mark(int)
,InputStream.reset()
-
mark
public void mark(int readAheadLimit)ストリームに現在のマーク位置を設定します。 ByteArrayInputStreamオブジェクトは、構築時にデフォルトで位置ゼロにマークされます。 このようなオブジェクトは、このメソッドによりバッファ内のほかの位置にマークを設定できます。マークが設定されていない場合、マークの値はコンストラクタに渡されたオフセットになります(オフセットが渡されない場合は0)。
ノート: このクラスの
readAheadLimit
に意味はありません。- オーバーライド:
mark
、クラス:InputStream
- パラメータ:
readAheadLimit
- マーク位置が無効になる前に読込み可能なバイト数の上限。- 導入されたバージョン:
- 1.1
- 関連項目:
InputStream.reset()
-
reset
public void reset()マーク位置へバッファをリセットします。 ほかの位置にマークが設定されている場合またはコンストラクタにオフセットが指定されている場合を除き、マーク位置は0に設定されます。- オーバーライド:
reset
、クラス:InputStream
- 関連項目:
InputStream.mark(int)
、IOException
-
close
public void close() throws IOExceptionByteArrayInputStream
を閉じても、何の影響もありません。IOException
を生成せずにストリームが閉じられたあとで、このクラスのメソッドを呼び出すことができます。- 定義:
close
、インタフェース:AutoCloseable
- 定義:
close
、インタフェース:Closeable
- オーバーライド:
close
、クラス:InputStream
- 例外:
IOException
- 入出力エラーが発生した場合。
-