JavaTM 2
Platform
Std. Ed. v1.4.0

java.io
クラス BufferedInputStream

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

public class BufferedInputStream
extends FilterInputStream

ほかの入力ストリームに機能、特に入力をバッファに格納する機能と mark メソッドと reset メソッドをサポートする機能を追加します。BufferedInputStream が作成されると、内部バッファ配列が作成されます。ストリームのバイトが読み込まれるかスキップされると、格納されている入力ストリームから必要に応じて一度に多数のバイトが内部バッファに補充されます。mark オペレーションは入力ストリームの特定位置を記憶します。reset オペレーションは、格納されている入力ストリームから新しいバイトが取得される前に、最後に実行された mark オペレーション以降に読み込まれたすべてのバイトを再読み込みします。

導入されたバージョン:
JDK1.0

フィールドの概要
protected  byte[] buf
          データを格納する内部バッファ配列です。
protected  int count
          バッファ中の最後の有効バイトインデックスよりも 1 つ大きな数値を持つインデックスです。
protected  int marklimit
          mark メソッドが呼び出され、かつ、後続の reset メソッドが失敗する前の状態で先読み可能な最大数です。
protected  int markpos
          最後に mark メソッドが呼び出されたときの pos フィールドの値です。
protected  int pos
          バッファの現在位置です。
 
クラス java.io.FilterInputStream から継承したフィールド
in
 
コンストラクタの概要
BufferedInputStream(InputStream in)
          BufferedInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。
BufferedInputStream(InputStream in, int size)
          指定されたバッファサイズを持つ BufferedInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。
 
メソッドの概要
 int available()
          ブロックせずに入力ストリームから読み込むことができるバイト数を返します。
 void close()
          この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。
 void mark(int readlimit)
          InputStreammark メソッドの汎用規約を参照してください。
 boolean markSupported()
          入力ストリームが markreset メソッドをサポートしているかどうを調べます。
 int read()
          InputStreamread メソッドの汎用規約を参照してください。
 int read(byte[] b, int off, int len)
          このバイト入力ストリームからバイトを読み取って、指定されたバイト配列に指定のオフセットから挿入します。
 void reset()
          InputStreamreset メソッドの汎用規約を参照してください。
 long skip(long n)
          InputStreamskip メソッドの汎用規約を参照してください。
 
クラス java.io.FilterInputStream から継承したメソッド
read
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

buf

protected byte[] buf
データを格納する内部バッファ配列です。必要に応じて、異なるサイズのほかの配列で置き換えられます。


count

protected int count
バッファ中の最後の有効バイトインデックスよりも 1 つ大きな数値を持つインデックスです。この値の範囲は、常に 0buf.length です。要素 buf[0]buf[count-1] には、基本となる入力ストリームから取得され、バッファに格納されている入力データが入ります。


pos

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

この値の範囲は、常に 0count です。この値が count より小さい場合、入力される次のバイトは buf[pos] です。count に等しい場合、次の read オペレーションまたは skip オペレーションは格納されている入力ストリームからこれ以降のバイトを読み込む必要があります。

関連項目:
buf

markpos

protected int markpos
最後に mark メソッドが呼び出されたときの pos フィールドの値です。

この値の範囲は、常に -1pos です。入力ストリームにマーク位置がない場合、このフィールドは -1 です。入力ストリームにマーク位置がある場合、reset オペレーションの実行後に入力される最初のバイトは buf[markpos] です。markpos-1 ではない場合、buf[markpos]buf[pos-1] の位置にあるすべてのバイトはバッファ配列に残っていなければなりません (ただし、countposmarkpos の値に適切な調整を施せば、バッファ配列内の別の位置に移動できる)。posmarkpos の差が marklimit を超えないかぎり、これらのバイトは破棄されません。

関連項目:
mark(int), pos

marklimit

protected int marklimit
mark メソッドが呼び出され、かつ、後続の reset メソッドが失敗する前の状態で先読み可能な最大数です。posmarkpos の差が marklimit を超えると、markpos-1 に設定され、マークは破棄されます。

関連項目:
mark(int), reset()
コンストラクタの詳細

BufferedInputStream

public BufferedInputStream(InputStream in)
BufferedInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。内部バッファ配列が作成され、buf に格納されます。

パラメータ:
in - 基本となる入力ストリーム

BufferedInputStream

public BufferedInputStream(InputStream in,
                           int size)
指定されたバッファサイズを持つ BufferedInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。長さ size の内部バッファ配列が作成され、buf に格納されます。

パラメータ:
in - 基本となる入力ストリーム
size - バッファサイズ
例外:
IllegalArgumentException - size が 0 以下の場合
メソッドの詳細

read

public int read()
         throws IOException
InputStreamread メソッドの汎用規約を参照してください。

オーバーライド:
クラス FilterInputStream 内の read
戻り値:
データの次のバイト。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
このバイト入力ストリームからバイトを読み取って、指定されたバイト配列に指定のオフセットから挿入します。

このメソッドは、InputStream クラスの対応する read メソッドの汎用規約を実装します。より便利なように、このメソッドは基本となるストリームの read メソッドを繰り返し呼び出して、できるだけ多くのバイト数を読み込もうとします。この read の繰り返しは、以下の条件の 1 つが true になるまで行われます。

基本となるストリームの最初の read がファイルの終わりを示す -1 を返すと、このメソッドは -1 を返します。そうでない場合、このメソッドは実際に読み込まれたバイト数を返します。

このクラスのサブクラスは、同じ方法でできるだけ多くのバイト数を読み込むことが推奨されます。ただし、これは必須ではありません。

オーバーライド:
クラス FilterInputStream 内の read
パラメータ:
b - 転送先バッファ
off - バイトの格納開始オフセット
len - 読み込むバイトの最大数
戻り値:
読み込まれるバイト数。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

skip

public long skip(long n)
          throws IOException
InputStreamskip メソッドの汎用規約を参照してください。

オーバーライド:
クラス FilterInputStream 内の skip
パラメータ:
n - スキップするバイト数
戻り値:
実際にスキップされたバイト数
例外:
IOException - 入出力エラーが発生した場合

available

public int available()
              throws IOException
ブロックせずに入力ストリームから読み込むことができるバイト数を返します。

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

オーバーライド:
クラス FilterInputStream 内の available
戻り値:
ブロックしないで入力ストリームから読み込むことができるバイト数
例外:
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

mark

public void mark(int readlimit)
InputStreammark メソッドの汎用規約を参照してください。

オーバーライド:
クラス FilterInputStream 内の mark
パラメータ:
readlimit - マーク位置が無効になる前に読み込み可能なバイトの最大リミット
関連項目:
reset()

reset

public void reset()
           throws IOException
InputStreamreset メソッドの汎用規約を参照してください。

markpos-1 である (マークが設定されていないか、マークが無効にされている) 場合、IOException がスローされます。そうでない場合、posmarkpos に一致するように設定されます。

オーバーライド:
クラス FilterInputStream 内の reset
例外:
IOException - ストリームにマークが設定されていなかった場合、またはマークが無効になっていた場合
関連項目:
mark(int)

markSupported

public boolean markSupported()
入力ストリームが markreset メソッドをサポートしているかどうを調べます。BufferedInputStreammarkSupported メソッドは true を返します。

オーバーライド:
クラス FilterInputStream 内の markSupported
戻り値:
このストリームのタイプが markreset メソッドをサポートしているかどうかを示す boolean
関連項目:
InputStream.mark(int), InputStream.reset()

close

public void close()
           throws IOException
この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。

オーバーライド:
クラス FilterInputStream 内の close
例外:
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.