- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- java.io.BufferedInputStream
-
- すべての実装されたインタフェース:
Closeable
,AutoCloseable
public class BufferedInputStream extends FilterInputStream
BufferedInputStream
は、ほかの入力ストリームに機能、特に入力をバッファに格納する機能とmark
およびreset
メソッドをサポートする機能を追加します。BufferedInputStream
が作成されると、内部バッファ配列が作成されます。 ストリームのバイトが読み込まれるかスキップされると、格納されている入力ストリームから必要に応じて一度に多数のバイトが内部バッファに補充されます。mark
オペレーションは入力ストリームの特定位置を記憶します。reset
オペレーションは、格納されている入力ストリームから新しいバイトが取得される前に、最後に実行されたmark
オペレーション以降に読み込まれたすべてのバイトを再読込みします。- 導入されたバージョン:
- 1.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)
InputStream
のmark
メソッドの汎用規約を参照してください。boolean
markSupported()
この入力ストリームがmark
およびreset
メソッドをサポートしているかどうかを判定します。int
read()
InputStream
のread
メソッドの汎用規約を参照してください。int
read(byte[] b, int off, int len)
このバイト入力ストリームからバイトを読み取って、指定されたバイト配列に指定のオフセットから挿入します。void
reset()
InputStream
のreset
メソッドの汎用規約を参照してください。long
skip(long n)
InputStream
のskip
メソッドの汎用規約を参照してください。-
クラス java.io.FilterInputStreamで宣言されたメソッド
read
-
クラス java.io.InputStreamで宣言されたメソッド
nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
-
-
-
-
フィールドの詳細
-
buf
protected volatile byte[] buf
データを格納する内部バッファ配列です。 必要に応じて、異なるサイズのほかの配列で置き換えられます。
-
count
protected int count
バッファ中の最後の有効バイト・インデックスよりも1つ大きな数値を持つインデックスです。 この値の範囲は、常に0
からbuf.length
です。要素buf[0]
からbuf[count-1]
には、ベースとなる入力ストリームから取得されたバッファリングされた入力データが格納されます。
-
pos
protected int pos
バッファ内の現在位置です。buf
配列の、次に読み込まれる文字データのインデックスです。この値の範囲は、常に
0
からcount
です。 この値がcount
より小さい場合、入力される次のバイトはbuf[pos]
です。count
に等しい場合、次のread
オペレーションまたはskip
オペレーションは格納されている入力ストリームからこれ以降のバイトを読み込む必要があります。- 関連項目:
buf
-
markpos
protected int markpos
最後にmark
メソッドが呼び出されたときのpos
フィールドの値です。この値の範囲は、常に
-1
からpos
です。 入力ストリームにマーク位置がない場合、このフィールドは-1
です。 入力ストリームにマーク位置がある場合、reset
オペレーションの実行後に入力される最初のバイトはbuf[markpos]
です。markpos
が-1
ではない場合、buf[markpos]
からbuf[pos-1]
の位置にあるすべてのバイトはバッファ配列に残っていなければいけません(ただし、count
、pos
、markpos
の値に適切な調整を施せば、バッファ配列内の別の位置に移動できる)。pos
とmarkpos
の差がmarklimit
を超えないかぎり、これらのバイトは破棄されません。
-
-
コンストラクタの詳細
-
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
InputStream
のread
メソッドの汎用規約を参照してください。- オーバーライド:
read
、クラスFilterInputStream
- 戻り値:
- データの次のバイト。ストリームの終わりに達した場合は
-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
を返した。 - ベースとなるストリームの
available
メソッドが、それ以上の入力要求がブロックされることを示すゼロを返した。
read
がファイルの終わりを示す-1
を返すと、このメソッドは-1
を返します。 そうでない場合、このメソッドは実際に読み込まれたバイト数を返します。このクラスのサブクラスは、同じ方法でできるだけ多くのバイト数を読み込むことが推奨されます。ただし、これは必須ではありません。
- オーバーライド:
read
、クラスFilterInputStream
- パラメータ:
b
- 転送先バッファ。off
- バイトの格納開始オフセット。len
- 読み込むバイトの最大数。- 戻り値:
- 読み込まれるバイト数。ストリームの終わりに達した場合は
-1
。 - 例外:
IOException
- この入力ストリームがそのclose()
メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。- 関連項目:
FilterInputStream.in
-
skip
public long skip(long n) throws IOException
InputStream
のskip
メソッドの汎用規約を参照してください。- オーバーライド:
skip
、クラスFilterInputStream
- パラメータ:
n
- スキップされるバイト数。- 戻り値:
- 実際にスキップされたバイト数。
- 例外:
IOException
- この入力ストリームがclose()
メソッドを呼び出して閉じられた場合、in.skip(n)
がIOExceptionをスローするか、I/Oエラーが発生します。
-
available
public int available() throws IOException
この入力ストリームのメソッドの次の呼出しによって、ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)推定バイト数を返します。 次の呼出しは、同じスレッドの場合も別のスレッドの場合もあります。 このような多数のバイトを1回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。このメソッドは、バッファの中に残っている読込み可能なバイトの総数(
count - pos
)、およびin
.available()呼出しの結果を返します。- オーバーライド:
available
、クラスFilterInputStream
- 戻り値:
- ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)推定バイト数。
- 例外:
IOException
- この入力ストリームがそのclose()
メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。
-
mark
public void mark(int readlimit)
InputStream
のmark
メソッドの汎用規約を参照してください。- オーバーライド:
mark
、クラスFilterInputStream
- パラメータ:
readlimit
- マーク位置が無効になる前に読込み可能なバイト数の上限。- 関連項目:
reset()
-
reset
public void reset() throws IOException
InputStream
のreset
メソッドの汎用規約を参照してください。markpos
が-1
である(マークが設定されていないか、マークが無効になっている)場合、IOException
がスローされます。 そうでない場合、pos
はmarkpos
に一致するように設定されます。- オーバーライド:
reset
、クラスFilterInputStream
- 例外:
IOException
- このストリームにマークが付いていない場合、マークが無効な場合、ストリームがclose()
メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。- 関連項目:
mark(int)
-
markSupported
public boolean markSupported()
この入力ストリームがmark
およびreset
メソッドをサポートしているかどうかを判定します。BufferedInputStream
のmarkSupported
メソッドはtrue
を返します。- オーバーライド:
markSupported
、クラスFilterInputStream
- 戻り値:
- このストリームの型が
mark
およびreset
メソッドをサポートしているかどうかを示すboolean
。 - 関連項目:
InputStream.mark(int)
,InputStream.reset()
-
close
public void close() throws IOException
この入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。 ストリームを閉じたあとに、さらにread()、available()、reset()、またはskip()を呼び出すと、IOExceptionがスローされます。 すでに閉じられているストリームを閉じても、何の影響もありません。- 定義:
close
、インタフェースAutoCloseable
- 定義:
close
、インタフェースCloseable
- オーバーライド:
close
、クラスFilterInputStream
- 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
FilterInputStream.in
-
-