全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
java.lang.Object | +----java.io.InputStream | +----java.io.FilterInputStream | +----java.io.BufferedInputStream
mark
メソッドを呼び出し、それに続く reset
メソッドが失敗する前の状態で許される先読み可能なデータ数。
mark
メソッドがコールされた時点でのpos
フィールドの値。
mark
とreset
メソッドをサポートするかを調べる。
mark
メソッドが呼ばれた状態まで位置を戻す。
n
バイトスキップして廃棄する。
protected byte buf[]
protected int count
protected int pos
buf
配列の次に読み込まれる文字データの添字です。
protected int markpos
mark
メソッドが呼び出されたときの pos
フィールドの値。現在 markが設定されていないときはこのフィールドの値は-1
になります。
protected int marklimit
reset
メソッドが失敗する前の状態で先読み可能な最大数です。
public BufferedInputStream(InputStream in)
public BufferedInputStream(InputStream in, int size)
public synchronized int read() throws IOException
0
から 255
までの値をとる int
です。もしストリームの最後に到達し、バイトが存在しなければ-1
を返します。このメソッドは、入力データが存在するか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。
BufferedInputStream
の read
メソッドは、バッファが空でない場合はバッファの中の次のバイトを返します。バッファが空の場合には、下層入力ストリームがストリーム終了コードを返すまで下層入力ストリームから読み込んだデータをバッファに書き込み、そしてバッファの次の文字を返します。
-1
。
public synchronized int read(byte b[], int off, int len) throws IOException
このストリームのバッファが空でない場合、バイトはここから配列引数にコピーされます。空の場合、バッファは下層の入力ストリームから補充され、ストリームがストリーム終了の指摘を返さなければ、配列引数は新たに満たされたバッファから文字を詰め込まれます。
最適な方法としては、バッファが空で、マークが無効で、len
が少なくともバッファと同じ位大きい場合、このメソッドが下層のストリームから与えられた配列に直接読み込むことです。こうして余分な BufferedInputStream
はデータを不必要にコピーしなくなります。
-1
。
public synchronized long skip(long n) throws IOException
n
バイトをスキップしてその内容を廃棄します。
種々の理由により skip
メソッドは、ゼロのことも、指定よりも少ない数だけ、スキップすることもあります。実際にスキップしたバイト数が返されます。
BufferedInputStream
の skip
メソッドは自分のバッファの読み込み可能なバイト数 k(k = count - pos
)と n
を比較します。もし n
<= k ならば、pos
フィールドを n
だけ増加させます。
そうでなければ、 pos
フィールドは count
の値を持つまで増加され、残りのバイトは下層入力ストリームの skip
メソッドを呼び出すことによりスキップし、この結果引数には n -
k が渡されます。
public synchronized int available() throws IOException
BufferedInputStream
の available
メソッドはバッファの中に残っている読み込み可能なバイトの総数 (count - pos
) を返し、そして下層入力ストリームの available
メソッド呼び出しの結果を返します。
public synchronized void mark(int readlimit)
reset
メソッドによりストリームは最後にマークされた位置に再設定されますから、次回の読み込みは同じバイトを再び読み込みます。
引数 readlimit
は入力ストリームに対して、マーク位置が無効になる前にこれで指定されるバイト数を読み込み可能にするように通知します。
public synchronized void reset() throws IOException
mark
メソッドが呼び出され、マークがつけられた位置へストリームを再設定します。
ストリームにマークが付けられていなかったり、マークが無効になっていると IOException がスローされます。ストリームのマークは、ユーザーがストリームの中に残っているデータを少し前読みするためのものです。これを実行する容易な方法は一般パーザを呼び出すことです。もしパーザで扱えるタイプのストリームであれば、これでうまく行きます。パーザで扱えないタイプのストリームの場合には、パーザは失敗した時点で例外をトスします。読み込む範囲内のバイトで例外がトスされた場合には、パーザは外部コードでストリームをリセットして別なパーザを試みます。
public boolean markSupported()
mark
と reset
メソッドをサポートしているかをテストします。BufferedInputStream
の markSupported
メソッドは true
を返します。
mark
と reset
メソッドをサポートしているかどうかを示す boolean
を返す。
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス