モジュール java.base
パッケージ java.io

クラスBufferedInputStream

すべての実装されたインタフェース:
Closeable, AutoCloseable

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

    フィールド
    修飾子と型
    フィールド
    説明
    protected byte[]
    データを格納する内部バッファ配列です。
    protected int
    バッファ中の最後の有効バイト・インデックスよりも1つ大きな数値を持つインデックスです。
    protected int
    markメソッドが呼び出され、かつ、後続のresetメソッドの呼出しが失敗する前の状態で先読み可能な最大数です。
    protected int
    最後にmarkメソッドが呼び出されたときのposフィールドの値です。
    protected int
    バッファ内の現在位置です。

    クラス java.io.FilterInputStreamで宣言されたフィールド

    in
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    BufferedInputStreamを作成し、その引数である入力ストリームinをあとで使用できるように保存します。
    BufferedInputStream​(InputStream in, int size)
    指定されたバッファ・サイズを持つBufferedInputStreamを作成し、その引数である入力ストリームinをあとで使用できるように保存します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    int
    この入力ストリームのメソッドの次の呼出しによって、ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)推定バイト数を返します。
    void
    この入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。
    void
    mark​(int readlimit)
    InputStreammarkメソッドの汎用規約を参照してください。
    boolean
    この入力ストリームがmarkおよびresetメソッドをサポートしているかどうかを判定します。
    int
    InputStreamreadメソッドの汎用規約を参照してください。
    int
    read​(byte[] b, int off, int len)
    このバイト入力ストリームからバイトを読み取って、指定されたバイト配列に指定のオフセットから挿入します。
    void
    InputStreamresetメソッドの汎用規約を参照してください。
    long
    skip​(long n)
    InputStreamskipメソッドの汎用規約を参照してください。

    クラス java.io.FilterInputStreamで宣言されたメソッド

    read

    クラス java.io.InputStreamで宣言されたメソッド

    nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • 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]の位置にあるすべてのバイトはバッファ配列に残っていなければいけません(ただし、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メソッドの汎用規約を参照してください。
      オーバーライド:
      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
      InputStreamskipメソッドの汎用規約を参照してください。
      オーバーライド:
      skip、クラス: FilterInputStream
      パラメータ:
      n - スキップされるバイト数。
      戻り値:
      実際にスキップされたバイト数。
      例外:
      IOException - この入力ストリームがclose()メソッドを呼び出して閉じられた場合、in.skip(n)がIOExceptionをスローするか、I/Oエラーが発生します。
      関連項目:
      InputStream.skipNBytes(long)
    • available

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

      このメソッドは、バッファ(count - pos)で読み取られる残りのバイト数の合計と、in.available()のコール結果を戻します。

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

      public void mark(int readlimit)
      InputStreammarkメソッドの汎用規約を参照してください。
      オーバーライド:
      mark、クラス: FilterInputStream
      パラメータ:
      readlimit - マーク位置が無効になる前に読込み可能なバイト数の上限。
      関連項目:
      reset()
    • reset

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

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

      オーバーライド:
      reset、クラス: FilterInputStream
      例外:
      IOException - このストリームにマークが付いていない場合、マークが無効な場合、ストリームがclose()メソッドの呼出しによって閉じられた場合、または入出力エラーが発生した場合。
      関連項目:
      mark(int)
    • markSupported

      public boolean markSupported()
      この入力ストリームがmarkおよびresetメソッドをサポートしているかどうかを判定します。 BufferedInputStreammarkSupportedメソッドは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