全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
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 を返す。
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス