クラス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)
    データのバイトを受け取ります。

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

    mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo
    修飾子と型
    メソッド
    説明
    void
    mark(int readlimit)
    この入力ストリームの現在位置にマークを設定します。
    boolean
    この入力ストリームがmarkおよびresetメソッドをサポートしているかどうかを判定します。
    バイトを読み取らない新しいInputStreamを返します。
    int
    read(byte[] b)
    入力ストリームから数バイトを読み込み、それをバッファ配列bに格納します。
    byte[]
    入力ストリームから残りのすべてのバイトを読み取ります。
    int
    readNBytes(byte[] b, int off, int len)
    入力ストリームからリクエストされたバイト数を、指定されたバイト配列に読み取ります。
    byte[]
    readNBytes(int len)
    入力ストリームから指定のバイト数まで読み取ります。
    void
    このストリームを、この入力ストリームで最後にmarkメソッドが呼び出されたときの位置に再配置します。
    long
    skip(long n)
    この入力ストリームからnバイトのデータをスキップして破棄します。
    void
    skipNBytes(long n)
    この入力ストリームからのデータのnバイトに正確にスキップし、破棄します。
    long
    この入力ストリームからすべてのバイトを読み取り、指定された出力ストリームに読み込まれた順序でバイトを書き込みます。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • フィールド詳細

    • 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 - 入出力エラーが発生した場合。