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

クラスPipedInputStream

java.lang.Object
java.io.InputStream
java.io.PipedInputStream
すべての実装されたインタフェース:
Closeable, AutoCloseable

public class PipedInputStream extends InputStream
パイプで連結された入力ストリームは、パイプで連結された出力ストリームに接続するようにします。これによって、パイプで連結された入力ストリームが提供するデータ・バイトは、パイプで連結された出力ストリームにすべて書き込まれます。 通常、データは1つのスレッドによってPipedInputStreamオブジェクトから読み込まれ、対応するPipedOutputStreamに別のスレッドによって書き込まれます。 単一のスレッドから両方のオブジェクトを使用することは、スレッドがデッドロックする可能性があるため推奨されていません。 パイプで連結された入力ストリームには一定範囲のバッファが含まれるため、読込み操作と書込み操作は分離されます。 接続済のパイプで連結された出力ストリームにデータ・バイトを提供していたスレッドが生存しなくなった場合は、パイプが壊れていると呼ばれます。
導入されたバージョン:
1.0
関連項目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected byte[]
    入ってくるデータを置く循環バッファです。
    protected int
    データの次のバイトをパイプで連結された接続済みの出力ストリームから受け取ったときに、その次のバイトを格納する循環バッファのインデックス位置です。
    protected int
    パイプで連結されたこの入力ストリームがデータの次のバイトを読み込む、循環バッファのインデックス位置です。
    protected static final int
    パイプの循環入力バッファのデフォルト・サイズです。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    PipedInputStreamを、まだ接続されないように作成します。
    PipedInputStream(int pipeSize)
    PipedInputStreamを、まだ接続されないように作成します。その際、指定されたパイプ・サイズをパイプのバッファに使用します。
    PipedInputStreamを、パイプで連結された出力ストリームsrcに接続されるように作成します。
    PipedInputStream(PipedOutputStream src, int pipeSize)
    PipedInputStreamを、パイプで連結された出力ストリームsrcに接続されるように作成します。その際、指定されたパイプ・サイズをパイプのバッファに使用します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    int
    ブロックせずに入力ストリームから読み込むことができるバイト数を返します。
    void
    この入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。
    void
    パイプで連結された入力ストリームをパイプで連結された出力ストリームsrcに接続します。
    int
    パイプで連結された入力ストリームからデータの次のバイトを読み込みます。
    int
    read(byte[] b, int off, int len)
    最大lenバイトのデータを、このパイプで連結された入力ストリームからバイト配列に読み込みます。
    protected void
    receive(int b)
    データのバイトを受け取ります。

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

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

    • PIPE_SIZE

      protected static final int PIPE_SIZE
      パイプの循環入力バッファのデフォルト・サイズです。
      導入されたバージョン:
      1.1
      関連項目:
    • buffer

      protected byte[] buffer
      入ってくるデータを置く循環バッファです。
      導入されたバージョン:
      1.1
    • in

      protected int in
      データの次のバイトをパイプで連結された接続済みの出力ストリームから受け取ったときに、その次のバイトを格納する循環バッファのインデックス位置です。in < 0はバッファが空であることを示し、in == outはバッファがいっぱいであることを示します。
      導入されたバージョン:
      1.1
    • out

      protected int out
      パイプで連結されたこの入力ストリームがデータの次のバイトを読み込む、循環バッファのインデックス位置です。
      導入されたバージョン:
      1.1
  • コンストラクタの詳細

    • PipedInputStream

      public PipedInputStream(PipedOutputStream src) throws IOException
      PipedInputStreamを、パイプで連結された出力ストリームsrcに接続されるように作成します。 srcに書き込まれたデータ・バイトは、このストリームからの入力として使えるようになります。
      パラメータ:
      src - 接続先のストリーム。
      例外:
      IOException - 入出力エラーが発生した場合。
    • PipedInputStream

      public PipedInputStream(PipedOutputStream src, int pipeSize) throws IOException
      PipedInputStreamを、パイプで連結された出力ストリームsrcに接続されるように作成します。その際、指定されたパイプ・サイズをパイプのバッファに使用します。 srcに書き込まれたデータ・バイトは、このストリームからの入力として使えるようになります。
      パラメータ:
      src - 接続先のストリーム。
      pipeSize - パイプのバッファのサイズ。
      例外:
      IOException - 入出力エラーが発生した場合。
      IllegalArgumentException - pipeSize <= 0の場合。
      導入されたバージョン:
      1.6
    • PipedInputStream

      public PipedInputStream()
      PipedInputStreamを、まだ接続されないように作成します。 使用前に、それをPipedOutputStream接続する必要があります。
    • PipedInputStream

      public PipedInputStream(int pipeSize)
      PipedInputStreamを、まだ接続されないように作成します。その際、指定されたパイプ・サイズをパイプのバッファに使用します。 使用前に、それをPipedOutputStream接続する必要があります。
      パラメータ:
      pipeSize - パイプのバッファのサイズ。
      例外:
      IllegalArgumentException - pipeSize <= 0の場合。
      導入されたバージョン:
      1.6
  • メソッドの詳細

    • connect

      public void connect(PipedOutputStream src) throws IOException
      パイプで連結された入力ストリームをパイプで連結された出力ストリームsrcに接続します。 このオブジェクトが別のパイプで連結された出力ストリームにすでに接続されている場合は、IOExceptionがスローされます。

      srcがパイプによる未接続の出力ストリームで、snkがパイプによる未接続の入力ストリームである場合、2つのストリームは以下の呼出しのどちらかによって接続されます。

          snk.connect(src)
      

      または

          src.connect(snk)
      

      2つの呼出しは同じ効果を持ちます。

      パラメータ:
      src - パイプによる接続先の出力ストリーム。
      例外:
      IOException - 入出力エラーが発生した場合。
    • receive

      protected void receive(int b) throws IOException
      データのバイトを受け取ります。 このメソッドは、有効な入力がない場合はブロックします。
      パラメータ:
      b - 受け取るバイト
      例外:
      IOException - パイプが brokenの状態である場合、unconnectedの状態である場合、閉じられている場合、または入出力エラーが発生した場合。
      導入されたバージョン:
      1.1
    • read

      public int read() throws IOException
      パイプで連結された入力ストリームからデータの次のバイトを読み込みます。 バイト値は、0 - 255の範囲のintとして返されます。 入力データが読み込めるようになるか、ストリームの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。
      定義:
      read、クラスInputStream
      戻り値:
      データの次のバイト。ストリームの終わりに達した場合は-1
      例外:
      IOException - パイプがunconnectedの状態である場合、 brokenの状態である場合、閉じられている場合、または入出力エラーが発生した場合。
    • read

      public int read(byte[] b, int off, int len) throws IOException
      最大lenバイトのデータを、このパイプで連結された入力ストリームからバイト配列に読み込みます。 データ・ストリームの終わりに達した場合、またはlenバイトがパイプのバッファ・サイズを超えている場合、lenバイトより少ないデータが読み込まれます。 len が0の場合、読み込まれるバイトはなく、0が返されます。そうでない場合、少なくとも1バイトの入力が利用できるようになるか、ストリームの終わりに達するか、例外がスローされるまでメソッドはブロックします。
      オーバーライド:
      read、クラスInputStream
      パラメータ:
      b - データの読込み先のバッファ。
      off - データが書き込まれる配列bの開始オフセット。
      len - 読み込む最大バイト数。
      戻り値:
      バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は-1
      例外:
      NullPointerException - bnullである場合。
      IndexOutOfBoundsException - offが負の値の場合、lenが負の値の場合、あるいはlenb.length - offより大きい場合
      IOException - パイプが brokenの状態である場合、unconnectedの状態である場合、閉じられている場合、または入出力エラーが発生した場合。
      関連項目:
    • available

      public int available() throws IOException
      ブロックせずに入力ストリームから読み込むことができるバイト数を返します。
      オーバーライド:
      available、クラスInputStream
      戻り値:
      この入力ストリームからブロックせずに読み込むことができるバイト数。あるいは、この入力ストリームがclose()メソッドを呼び出すことにより閉じられた場合、またはパイプがunconnected brokenの状態である場合は0
      例外:
      IOException - 入出力エラーが発生した場合。
      導入されたバージョン:
      1.0.2
    • close

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