public class ByteArrayInputStream extends InputStream
ByteArrayInputStreamは、ストリームから読み込むことができるバイトを格納する内部バッファを保持しています。内部カウンタによって、readメソッドで次に読み込まれるバイトを追跡します。
ByteArrayInputStreamを閉じても、何の影響もありません。IOExceptionを生成せずにストリームが閉じられたあとで、このクラスのメソッドを呼び出すことができます。
StringBufferInputStream| 修飾子と型 | フィールドと説明 |
|---|---|
protected byte[] |
buf
ストリームの作成側によって提供されたバイトの配列です。
|
protected int |
count
入力ストリーム中の最後の有効文字位置よりも1つ大きな値を持つインデックスです。
|
protected int |
mark
ストリームの中で、現在マークが設定されている位置を示します。
|
protected int |
pos
入力ストリーム・バッファから読み込む次の文字のインデックスです。
|
| コンストラクタと説明 |
|---|
ByteArrayInputStream(byte[] buf)
bufをバッファ配列として使うように、ByteArrayInputStreamを作成します。 |
ByteArrayInputStream(byte[] buf, int offset, int length)
bufをバッファ配列として使用するByteArrayInputStreamを作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
int |
available()
この入力ストリームから、読み込むことができる(またはスキップできる)残りのバイト数を返します。
|
void |
close()
ByteArrayInputStreamを閉じても、何の影響もありません。
|
void |
mark(int readAheadLimit)
ストリームに現在のマーク位置を設定します。
|
boolean |
markSupported()
この
InputStreamがmark/resetをサポートしているかどうかを判定します。 |
int |
read()
この入力ストリームからデータの次のバイトを読み込みます。
|
int |
read(byte[] b, int off, int len)
最大
lenバイトのデータを、この入力ストリームからバイト配列に読み込みます。 |
void |
reset()
マーク位置へバッファをリセットします。
|
long |
skip(long n)
この入力ストリームを
nバイトだけスキップします。 |
readprotected byte[] buf
buf[0]からbuf[count-1]は、ストリームから読み込むことができる唯一のバイトです。要素buf[pos]は次に読み込まれるバイトです。protected int pos
countの値より大きくてもいけません。入力ストリーム・バッファから読み込まれる次のバイトは、buf[pos]になります。protected int mark
mark()メソッドによりバッファ内のほかの位置にマークを設定できます。バッファの現在位置は、reset()メソッドによりこの位置に設定されます。
マークが設定されていない場合、マークの値はコンストラクタに渡されたオフセットになります(オフセットが渡されない場合は0)。
protected int count
bufの長さより大きくてもいけません。これは、入力ストリーム・バッファから読み込まれるbuf内の最後のバイト位置より1つ大きい値です。public ByteArrayInputStream(byte[] buf)
bufをバッファ配列として使うように、ByteArrayInputStreamを作成します。バッファ配列はコピーされません。posの初期値は0であり、countの初期値はbufの長さです。buf - 入力バッファ。public ByteArrayInputStream(byte[] buf,
int offset,
int length)
bufをバッファ配列として使用するByteArrayInputStreamを作成します。posの初期値はoffsetであり、countの初期値はoffset+lengthとbuf.lengthの小さい方です。バッファ配列はコピーされません。バッファのマークは指定したオフセットに設定されます。buf - 入力バッファ。offset - バッファからのバイト読込み開始オフセット。length - バッファから読み込む最大バイト数。public int read()
0 - 255の範囲のintとして返されます。ストリームの終わりに達したために読み込むバイトがない場合は、-1が返されます。
このreadメソッドはブロックできません。
read、クラス: InputStream-1。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、クラス: InputStreamb - データの読込み先のバッファ。off - 転送先配列bの開始オフセットlen - 読み込まれる最大バイト数。-1。NullPointerException - bがnullである場合。IndexOutOfBoundsException - offが負の値の場合、lenが負の値の場合、あるいはlenがb.length - offより大きい場合InputStream.read()public long skip(long n)
nバイトだけスキップします。ストリームの終わりに達した場合は、スキップされるバイト数が少なくなることがあります。実際にスキップされるバイト数kは、nとcount-posの小さい方になります。値kがposに加えられ、kが返されます。skip、クラス: InputStreamn - スキップされるバイト数。public int available()
戻り値は、count - posで、入力バッファから読み込む残りのバイト数です。
available、クラス: InputStreampublic boolean markSupported()
InputStreamがmark/resetをサポートしているかどうかを判定します。ByteArrayInputStreamのmarkSupportedメソッドは常にtrueを返します。markSupported、クラス: InputStreamtrue、それ以外の場合はfalse。InputStream.mark(int), InputStream.reset()public void mark(int readAheadLimit)
マークが設定されていない場合、マークの値はコンストラクタに渡されたオフセットになります(オフセットが渡されない場合は0)。
注: このクラスのreadAheadLimitに意味はありません。
mark、クラス: InputStreamreadAheadLimit - マーク位置が無効になる前に読込み可能なバイト数の上限。InputStream.reset()public void reset()
reset、クラス: InputStreamInputStream.mark(int)、IOExceptionpublic void close()
throws IOException
close、インタフェース: Closeableclose、インタフェース: AutoCloseableclose、クラス: InputStreamIOException - 入出力エラーが発生した場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.