public class BufferedInputStream extends FilterInputStream
BufferedInputStreamは、ほかの入力ストリームに機能、特に入力をバッファに格納する機能とmarkおよびresetメソッドをサポートする機能を追加します。 BufferedInputStreamが作成されると、内部バッファ配列が作成されます。 ストリームのバイトが読み込まれるかスキップされると、格納されている入力ストリームから必要に応じて一度に多数のバイトが内部バッファに補充されます。 markオペレーションは入力ストリームの特定位置を記憶します。resetオペレーションは、格納されている入力ストリームから新しいバイトが取得される前に、最後に実行されたmarkオペレーション以降に読み込まれたすべてのバイトを再読込みします。 | 修飾子と型 | フィールド | 説明 |
|---|---|---|
protected byte[] |
buf |
データを格納する内部バッファ配列です。
|
protected int |
count |
バッファ中の最後の有効バイト・インデックスよりも1つ大きな数値を持つインデックスです。
|
protected int |
marklimit |
markメソッドが呼び出され、かつ、後続のresetメソッドの呼出しが失敗する前の状態で先読み可能な最大数です。 |
protected int |
markpos |
最後に
markメソッドが呼び出されたときのposフィールドの値です。 |
protected int |
pos |
バッファ内の現在位置です。
|
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メソッドの汎用規約を参照してください。 |
readprotected volatile byte[] buf
protected int count
0からbuf.lengthです。要素buf[0]からbuf[count-1] には、ベースとなる入力ストリームから取得されたバッファリングされた入力データが格納されます。 protected int pos
buf配列の、次に読み込まれる文字データのインデックスです。
この値の範囲は、常に0からcountです。 この値がcountより小さい場合、入力される次のバイトはbuf[pos]です。countに等しい場合、次のreadオペレーションまたはskipオペレーションは格納されている入力ストリームからこれ以降のバイトを読み込む必要があります。
bufprotected int markpos
markメソッドが呼び出されたときのposフィールドの値です。
この値の範囲は、常に-1からposです。 入力ストリームにマーク位置がない場合、このフィールドは-1です。 入力ストリームにマーク位置がある場合、resetオペレーションの実行後に入力される最初のバイトはbuf[markpos]です。 markposが-1ではない場合、buf[markpos]からbuf[pos-1]の位置にあるすべてのバイトはバッファ配列に残っていなければいけません(ただし、count、pos、markposの値に適切な調整を施せば、バッファ配列内の別の位置に移動できる)。posとmarkposの差がmarklimitを超えないかぎり、これらのバイトは破棄されません。
public BufferedInputStream(InputStream in)
BufferedInputStreamを作成し、その引数である入力ストリームinをあとで使用できるように保存します。 内部バッファ配列が作成され、bufに格納されます。 in - ベースとなる入力ストリーム。public BufferedInputStream(InputStream in, int size)
BufferedInputStreamを作成し、その引数である入力ストリームinをあとで使用できるように保存します。 長さsizeの内部バッファ配列が作成され、bufに格納されます。 in - ベースとなる入力ストリーム。size - バッファ・サイズ。IllegalArgumentException - size <= 0の場合。public int read()
throws IOException
InputStreamのreadメソッドの汎用規約を参照してください。read、クラスFilterInputStream-1。IOException - この入力ストリームがそのclose()メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。FilterInputStream.inpublic int read(byte[] b,
int off,
int len)
throws IOException
このメソッドは、クラスの対応するInputStreamメソッドの汎用規約を実装します。 より高い利便性のため、このメソッドはベースとなるストリームのreadreadメソッドを繰返し呼び出して、できるだけ多くのバイト数を読み込もうとします。 このreadの反復は、次の条件の1つがtrueになるまで行われます。
readメソッドが、ファイルの終わりを示す-1を返した。
availableメソッドが、それ以上の入力要求がブロックされることを示すゼロを返した。
readがファイルの終わりを示す-1を返すと、このメソッドは-1を返します。 そうでない場合、このメソッドは実際に読み込まれたバイト数を返します。
このクラスのサブクラスは、同じ方法でできるだけ多くのバイト数を読み込むことが推奨されます。ただし、これは必須ではありません。
read、クラスFilterInputStreamb - 転送先バッファ。off - バイトの格納開始オフセット。len - 読み込むバイトの最大数。-1。IOException - この入力ストリームがそのclose()メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。FilterInputStream.inpublic long skip(long n)
throws IOException
InputStreamのskipメソッドの汎用規約を参照してください。skip、クラスFilterInputStreamn - スキップされるバイト数。IOException - ストリームがシークをサポートしない場合、この入力ストリームがclose()メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。public int available()
throws IOException
このメソッドは、バッファの中に残っている読込み可能なバイトの総数(count - pos)、およびin.available()呼出しの結果を返します。
available、クラスFilterInputStreamIOException - この入力ストリームがそのclose()メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。public void mark(int readlimit)
InputStreamのmarkメソッドの汎用規約を参照してください。mark、クラスFilterInputStreamreadlimit - マーク位置が無効になる前に読込み可能なバイト数の上限。reset()public void reset()
throws IOException
InputStreamのresetメソッドの汎用規約を参照してください。
markposが-1である(マークが設定されていないか、マークが無効になっている)場合、IOExceptionがスローされます。 そうでない場合、posはmarkposに一致するように設定されます。
reset、クラスFilterInputStreamIOException - このストリームにマークが付いていない場合、マークが無効な場合、ストリームがclose()メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。mark(int)public boolean markSupported()
markおよびresetメソッドをサポートしているかどうかを判定します。 BufferedInputStreamのmarkSupportedメソッドはtrueを返します。 markSupported、クラスFilterInputStreammarkおよびresetメソッドをサポートしているかどうかを示すboolean。InputStream.mark(int), InputStream.reset()public void close()
throws IOException
close、インタフェースCloseableclose、インタフェースAutoCloseableclose、クラスFilterInputStreamIOException - 入出力エラーが発生した場合。FilterInputStream.in バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。