全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.io.BufferedInputStream

java.lang.Object
   |
   +----java.io.InputStream
           |
           +----java.io.FilterInputStream
                   |
                   +----java.io.BufferedInputStream

public class BufferedInputStream
extends FilterInputStream
このクラスはバッファリングされた入力ストリームを実装します。このようなバッファを設定することにより、アプリケーションは下層のシステムを呼び出してバイト単位で読み込む必要なくストリームからバイト列を読み込むことができます。データはブロック単位でバッファに読み込まれ、それに続く読み込みにより直接バッファからデータにアクセスできます。


Variable Index

 o buf
データが格納されるバッファ。
 o count
バッファ中の最後の有効バイト添字よりも一つ大きな数値を持つ添字。
 o marklimit
mark メソッドを呼び出し、それに続く resetメソッドが失敗する前の状態で許される先読み可能なデータ数。
 o markpos
最後のmarkメソッドがコールされた時点でのposフィールドの値。
 o pos
バッファの中の現在位置。

Constructor Index

 o BufferedInputStream(InputStream)
指定された入力ストリームからデータを読み込むためのバッファリングされた新しい入力ストリームを作成する。デフォルトのバッファサイズは512バイトである。
 o BufferedInputStream(InputStream, int)
指定された入力ストリームからデータを読み込むための、指定されたサイズでバッファリングされた新しい入力ストリームを作成する。

Method Index

 o available()
ブロックされることなしに入力ストリームから読み込むことができるバイト数を返す。
 o mark(int)
入力ストリームの現在位置をマークを付ける。
 o markSupported()
入力ストリームが markreset メソッドをサポートするかを調べる。
 o read()
バッファリングされた入力ストリームデータの次のバイトを読み込む。
 o read(byte[], int, int)
バイトを配列部分に読み込む。
 o reset()
入力ストリームの位置を、最後にこの入力ストリームに対してmark メソッドが呼ばれた状態まで位置を戻す。
 o skip(long)
入力ストリームのデータを nバイトスキップして廃棄する。

Variables

 o buf
  protected byte buf[]
データが格納されるバッファです。

 o count
  protected int count
バッファ中の最後の有効バイト添字よりも一つ大きな数値を持つ添字です。

 o pos
  protected int pos
バッファの現在位置です。 buf配列の次に読み込まれる文字データの添字です。

参照:
buf
 o markpos
  protected int markpos
最後にmarkメソッドが呼び出されたときの posフィールドの値。現在 markが設定されていないときはこのフィールドの値は-1になります。

参照:
mark, pos
 o marklimit
  protected int marklimit
メソッドが呼び出され、かつ、後続の reset メソッドが失敗する前の状態で先読み可能な最大数です。

参照:
mark, reset

Constructors

 o BufferedInputStream
  public BufferedInputStream(InputStream in)
指定された入力ストリームからデータを読み込むためのバッファリングされた新しい入力ストリームを作成します。デフォルトのバッファサイズは512バイトです。

パラメータ:
in - 下層入力ストリーム。
 o BufferedInputStream
  public BufferedInputStream(InputStream in,
                             int size)
指定された入力ストリームからデータを読み込むための、指定されたサイズでバッファリングされた新しい入力ストリームを作成します。

パラメータ:
in - 下層入力ストリーム。
size - バッファのサイズ。

Methods

 o read
 public synchronized int read() throws IOException
バッファリングされた入力ストリームから次のバイトデータを読み込みます。バイトの値は 0 から 255 までの値をとる int です。もしストリームの最後に到達し、バイトが存在しなければ-1 を返します。このメソッドは、入力データが存在するか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

BufferedInputStreamread メソッドは、バッファが空でない場合はバッファの中の次のバイトを返します。バッファが空の場合には、下層入力ストリームがストリーム終了コードを返すまで下層入力ストリームから読み込んだデータをバッファに書き込み、そしてバッファの次の文字を返します。

返り値:
データの次のバイト。ストリームの最後に達した場合は -1
例外: IOException
I/O エラーが発生した場合。
オーバーライド:
FilterInputStream クラスの read
参照:
in
 o read
 public synchronized int read(byte b[],
                              int off,
                              int len) throws IOException
バイトを配列部分に読み込みます。ある入力が使用可能になるか、I/O エラーが発生するか、またはストリームの終わりに到達するまで、このメソッドはブロックします。

このストリームのバッファが空でない場合、バイトはここから配列引数にコピーされます。空の場合、バッファは下層の入力ストリームから補充され、ストリームがストリーム終了の指摘を返さなければ、配列引数は新たに満たされたバッファから文字を詰め込まれます。

最適な方法としては、バッファが空で、マークが無効で、len が少なくともバッファと同じ位大きい場合、このメソッドが下層のストリームから与えられた配列に直接読み込むことです。こうして余分な BufferedInputStream はデータを不必要にコピーしなくなります。

パラメータ:
b - 転送先バッファ。
off - バイト格納を開始するオフセット。
len - 読み込むバイトの最大数。
返り値:
読み込まれるバイト数、またはストリームの終わりに到達した場合には -1
例外: IOException
I/O エラーが発生した場合。
オーバーライド:
FilterInputStream クラスの read
 o skip
 public synchronized long skip(long n) throws IOException
入力ストリームの n バイトをスキップしてその内容を廃棄します。 種々の理由により skip メソッドは、ゼロのことも、指定よりも少ない数だけ、スキップすることもあります。実際にスキップしたバイト数が返されます。

BufferedInputStreamskip メソッドは自分のバッファの読み込み可能なバイト数 kk = count - pos)と n を比較します。もし n <= k ならば、posフィールドを nだけ増加させます。 そうでなければ、 pos フィールドは countの値を持つまで増加され、残りのバイトは下層入力ストリームの skip メソッドを呼び出すことによりスキップし、この結果引数には n - k が渡されます。

パラメータ:
n - スキップするバイト数。
返り値:
実際にスキップされたバイト数。
例外: IOException
I/O エラーが発生した場合。
オーバーライド:
FilterInputStream クラスの skip
 o available
 public synchronized int available() throws IOException
入力ストリームから、ブロッキングの発生なしに読み込むことができるバイト数を返します。

BufferedInputStreamavailable メソッドはバッファの中に残っている読み込み可能なバイトの総数 (count - pos) を返し、そして下層入力ストリームの available メソッド呼び出しの結果を返します。

返り値:
ブロッキング発生なしに入力ストリームから読み込むことのできるバイト数。
例外: IOException
I/O エラーが発生した場合。
オーバーライド:
FilterInputStream クラスの available
参照:
in
 o mark
  public synchronized void mark(int readlimit)
入力ストリームの現在位置にマークを付けます。これに続くreset メソッドによりストリームは最後にマークされた位置に再設定されますから、次回の読み込みは同じバイトを再び読み込みます。

引数 readlimit は入力ストリームに対して、マーク位置が無効になる前にこれで指定されるバイト数を読み込み可能にするように通知します。

パラメータ:
readlimit - マーク位置が無効になる前に読み込み可能なバイト数の上限。
オーバーライド:
FilterInputStream クラスの mark
参照:
reset
 o reset
 public synchronized void reset() throws IOException
最近この入力ストリームへ mark メソッドが呼び出され、マークがつけられた位置へストリームを再設定します。

ストリームにマークが付けられていなかったり、マークが無効になっていると IOException がスローされます。ストリームのマークは、ユーザーがストリームの中に残っているデータを少し前読みするためのものです。これを実行する容易な方法は一般パーザを呼び出すことです。もしパーザで扱えるタイプのストリームであれば、これでうまく行きます。パーザで扱えないタイプのストリームの場合には、パーザは失敗した時点で例外をトスします。読み込む範囲内のバイトで例外がトスされた場合には、パーザは外部コードでストリームをリセットして別なパーザを試みます。

例外: IOException
ストリームにマークが付けられていないか、またはマークが無効になっている場合。
オーバーライド:
FilterInputStream クラスの reset
参照:
mark
 o markSupported
  public boolean markSupported()
入力ストリームが markreset メソッドをサポートしているかをテストします。BufferedInputStreammarkSupported メソッドは true を返します。

返り値:
ストリーム型が markreset メソッドをサポートしているかどうかを示す boolean を返す。
オーバーライド:
FilterInputStream クラスの markSupported
参照:
mark, reset

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス