JavaTM Platform
Standard Ed. 6

java.io
クラス BufferedInputStream

java.lang.Object
  上位を拡張 java.io.InputStream
      上位を拡張 java.io.FilterInputStream
          上位を拡張 java.io.BufferedInputStream
すべての実装されたインタフェース:
Closeable

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 volatile 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 - この入力ストリームが close() メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合
関連項目:
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 - この入力ストリームが close() メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合
関連項目:
FilterInputStream.in

skip

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

オーバーライド:
クラス FilterInputStream 内の skip
パラメータ:
n - スキップするバイト数
戻り値:
実際にスキップされたバイト数
例外:
IOException - ストリームがシークをサポートしない場合、この入力ストリームが close() メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合

available

public int available()
              throws IOException
この入力ストリームのメソッドの次の呼び出しによって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。次の呼び出しは、同じスレッドの場合も別のスレッドの場合もあります。このような多数のバイトを 1 回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。

このメソッドは、バッファーの中に残っている読み込み可能なバイトの総数 (count - pos) を返し、in.available() 呼び出しの結果を返します。

オーバーライド:
クラス FilterInputStream 内の available
戻り値:
ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数
例外:
IOException - この入力ストリームが close() メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合

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 - このストリームにマークが付いていない場合、マークが無効な場合、ストリームが close() メソッドの呼び出しによって閉じられた場合、または入出力エラーが発生した場合
関連項目:
mark(int)

markSupported

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

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

close

public void close()
           throws IOException
この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。ストリームを閉じたあとに、さらに read()、available()、reset()、または skip() を呼び出すと、IOException がスローされます。すでに閉じられているストリームを閉じても、何の影響もありません。

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

JavaTM Platform
Standard Ed. 6

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

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。