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

クラスFilterInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
すべての実装されたインタフェース:
Closeable, AutoCloseable
直系の既知のサブクラス:
BufferedInputStream, CheckedInputStream, CipherInputStream, DataInputStream, DeflaterInputStream, DigestInputStream, InflaterInputStream, LineNumberInputStream, ProgressMonitorInputStream, PushbackInputStream

public class FilterInputStream
extends InputStream
FilterInputStreamは、データの基本的なソースとして使用するためのその他の入力ストリームを格納します。データを途中で変換することや、追加機能を提供することもあります。 FilterInputStreamクラスそのものが、格納されている入力ストリームにすべての要求を渡すバージョンによって、InputStreamのすべてのメソッドを単純にオーバーライドします。 FilterInputStreamのサブクラスは、これらのメソッドの一部をさらにオーバーライドすることができ、追加のメソッドやフィールドを提供することもできます。
導入されたバージョン:
1.0
  • フィールドのサマリー

    フィールド
    修飾子と型 フィールド 説明
    protected InputStream in
    フィルタ処理される入力ストリームです。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子 コンストラクタ 説明
    protected FilterInputStream​(InputStream in)
    あとで使用できるように引数inをフィールドthis.inに割り当てることによってFilterInputStreamを作成します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    int available()
    この入力ストリームのメソッドの次の呼出し側によって、ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)推定バイト数を返します。
    void close()
    この入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。
    void mark​(int readlimit)
    この入力ストリームの現在位置にマークを設定します。
    boolean markSupported()
    この入力ストリームがmarkおよびresetメソッドをサポートしているかどうかを判定します。
    int read()
    この入力ストリームからデータの次のバイトを読み込みます。
    int read​(byte[] b)
    最大b.lengthバイトのデータを、この入力ストリームからバイト配列に読み込みます。
    int read​(byte[] b, int off, int len)
    最大lenバイトのデータを、この入力ストリームからバイト配列に読み込みます。
    void reset()
    このストリームを、この入力ストリームで最後にmarkメソッドが呼び出されたときの位置に再配置します。
    long skip​(long n)
    入力ストリームからnバイトのデータをスキップして破棄します。

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

    nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

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

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

    • in

      protected volatile InputStream in
      フィルタ処理される入力ストリームです。
  • コンストラクタの詳細

    • FilterInputStream

      protected FilterInputStream​(InputStream in)
      あとで使用できるように引数inをフィールドthis.inに割り当てることによってFilterInputStreamを作成します。
      パラメータ:
      in - ベースとなる入力ストリーム。このインスタンスがベースとなるストリームなしで生成される場合はnull
  • メソッドの詳細

    • read

      public int read() throws IOException
      この入力ストリームからデータの次のバイトを読み込みます。 バイト値は、0 - 255の範囲のintとして返されます。 ストリームの終わりに達したために読み込むバイトがない場合は、-1が返されます。 入力データが読み込めるようになるか、ストリームの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。

      このメソッドは単純にin.read()を実行し、その結果を返します。

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

      public int read​(byte[] b) throws IOException
      最大b.lengthバイトのデータを、この入力ストリームからバイト配列に読み込みます。 このメソッドは、入力の一部が利用できるようになるまでブロックします。

      このメソッドは単純にread(b, 0, b.length)の呼出しを実行し、その結果を返します。 代わりにin.read(b)が実行されないようにしてください。FilterInputStreamの特定のサブクラスは、実際に使用されている実装方法に依存します。

      オーバーライド:
      read、クラス: InputStream
      パラメータ:
      b - データの読込み先のバッファ。
      戻り値:
      バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は-1
      例外:
      IOException - 入出力エラーが発生した場合。
      関連項目:
      read(byte[], int, int)
    • read

      public int read​(byte[] b, int off, int len) throws IOException
      最大lenバイトのデータを、この入力ストリームからバイト配列に読み込みます。 lenが0でない場合、このメソッドは入力の一部が利用できるようになるまでブロックされます。それ以外の場合、バイトは読み込まれず、0が返されます。

      このメソッドは単純にin.read(b, off, len)を実行し、その結果を返します。

      オーバーライド:
      read、クラス: InputStream
      パラメータ:
      b - データの読込み先のバッファ。
      off - 転送先配列の開始オフセットb
      len - 読み込まれる最大バイト数。
      戻り値:
      バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は-1
      例外:
      NullPointerException - bnullである場合。
      IndexOutOfBoundsException - offが負の値の場合、lenが負の値の場合、あるいはlenb.length - offより大きい場合
      IOException - 入出力エラーが発生した場合。
      関連項目:
      in
    • skip

      public long skip​(long n) throws IOException
      入力ストリームからnバイトのデータをスキップして破棄します。 さまざまな理由から、skipメソッドは指定よりも少ないバイト数しかスキップしないことがあります。0の場合もあります。 スキップされた実際のバイト数が返されます。

      このメソッドは単純にin.skip(n)を実行します。

      オーバーライド:
      skip、クラス: InputStream
      パラメータ:
      n - スキップされるバイト数。
      戻り値:
      実際にスキップされたバイト数。
      例外:
      IOException - in.skip(n)がIOExceptionをスローした場合。
      関連項目:
      InputStream.skipNBytes(long)
    • available

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

      このメソッドは、in.available()の結果を返します。

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

      public void close() throws IOException
      この入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。 このメソッドは単純にin.close()を実行します。
      定義:
      close、インタフェース: AutoCloseable
      定義:
      close、インタフェース: Closeable
      オーバーライド:
      close、クラス: InputStream
      例外:
      IOException - 入出力エラーが発生した場合。
      関連項目:
      in
    • mark

      public void mark​(int readlimit)
      この入力ストリームの現在位置にマークを設定します。 これに続いてresetメソッドを呼び出すと、最後にマークされた位置にこのストリームが再配置されるため、以降の読込みでは同じバイトが再度読み込まれます。

      引数readlimitはこの入力ストリームに対して、マーク位置が無効になる前にこの引数が指定するバイト数を読み込むように指示します。

      このメソッドは単純にin.mark(readlimit)を実行します。

      オーバーライド:
      mark、クラス: InputStream
      パラメータ:
      readlimit - マーク位置が無効になる前に読込み可能なバイト数の上限。
      関連項目:
      in, reset()
    • reset

      public void reset() throws IOException
      このストリームを、この入力ストリームで最後にmarkメソッドが呼び出されたときの位置に再配置します。

      このメソッドは単純にin.reset()を実行します。

      ストリームのマークは、ストリームに何が含まれているかをチェックするために、データを少しだけ先読みする必要がある場合に使われます。 これをもっとも容易に実行する方法は、一般的なパーサーを呼び出すことです。 ストリームがパーサーで取り扱えるタイプであれば、これでうまく行きます。 ストリームがこのようなタイプではない場合は、パーサーは失敗した時点で例外を発生させます。 readlimitバイトの範囲内でこれが発生した場合は、外部のコードでストリームをリセットし、別のパーサーを呼び出すことができます。

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

      public boolean markSupported()
      この入力ストリームがmarkおよびresetメソッドをサポートしているかどうかを判定します。 このメソッドは単純にin.markSupported()を実行します。
      オーバーライド:
      markSupported、クラス: InputStream
      戻り値:
      このストリーム・インスタンスがmarkおよびresetメソッドをサポートしている場合はtrue、それ以外の場合はfalse
      関連項目:
      in, InputStream.mark(int), InputStream.reset()