JavaTM 2 Platform
Standard Ed. 5.0

java.io
クラス PipedInputStream

java.lang.Object
  上位を拡張 java.io.InputStream
      上位を拡張 java.io.PipedInputStream
すべての実装されたインタフェース:
Closeable

public class PipedInputStream
extends InputStream

パイプで連結された入力ストリームは、パイプで連結された出力ストリームに接続されます。つまり、パイプで連結された入力ストリームは、パイプで連結された出力ストリームに書き込まれるデータバイトを提供します。一般に、PipedInputStream オブジェクトからデータを読み込むスレッドと、対応する PipedOutputStream オブジェクトにデータを書き込むスレッドは別々です。単一のスレッドからこれらの 2 つのオブジェクトを使うことは、そのスレッドをデッドロックさせる危険があるため、推奨できません。パイプで連結された入力ストリームは一定の範囲内でバッファを保持し、これにより書き込み処理と読み込み処理は分離されます。

導入されたバージョン:
JDK1.0
関連項目:
PipedOutputStream

フィールドの概要
protected  byte[] buffer
          入ってくるデータを置く循環バッファです。
protected  int in
          データの次のバイトをパイプで連結された接続済みの出力ストリームから受け取ったときに、その次のバイトを格納する循環バッファのインデックス位置です。
protected  int out
          パイプで連結されたこの入力ストリームがデータの次のバイトを読み込む、循環バッファのインデックス位置です。
protected static int PIPE_SIZE
          パイプの循環入力バッファのサイズです。
 
コンストラクタの概要
PipedInputStream()
          PipedInputStream を、まだ接続されていない状態で作成します。
PipedInputStream(PipedOutputStream src)
          PipedInputStream を、パイプで連結された出力ストリーム src に接続されるように作成します。
 
メソッドの概要
 int available()
          ブロックせずにこの入力ストリームから読み込めるバイト数を返します。
 void close()
          パイプによる入力ストリームを閉じ、そのストリームに関連するすべてのシステムリソースを解放します。
 void connect(PipedOutputStream src)
          パイプによる入力ストリームを、パイプによる出力ストリーム src に接続させます。
 int read()
          パイプによる入力ストリームから、次のバイトを読み込みます。
 int read(byte[] b, int off, int len)
          パイプによる入力ストリームの len バイトまでのデータをバイトの配列に読み込みます。
protected  void receive(int b)
          データのバイトを受け取ります。
 
クラス java.io.InputStream から継承されたメソッド
mark, markSupported, read, reset, skip
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

PIPE_SIZE

protected static final int PIPE_SIZE
パイプの循環入力バッファのサイズです。

導入されたバージョン:
JDK1.1
関連項目:
定数フィールド値

buffer

protected byte[] buffer
入ってくるデータを置く循環バッファです。

導入されたバージョン:
JDK1.1

in

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

導入されたバージョン:
JDK1.1

out

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

導入されたバージョン:
JDK1.1
コンストラクタの詳細

PipedInputStream

public PipedInputStream(PipedOutputStream src)
                 throws IOException
PipedInputStream を、パイプで連結された出力ストリーム src に接続されるように作成します。src に書き込まれるデータバイトは、このストリームからの入力として使用できます。

パラメータ:
src - 接続先のストリーム
例外:
IOException - 入出力エラーが発生した場合

PipedInputStream

public PipedInputStream()
PipedInputStream を、まだ接続されていない状態で作成します。これを使うには、PipedOutputStream に接続する必要があります。

関連項目:
connect(java.io.PipedOutputStream), PipedOutputStream.connect(java.io.PipedInputStream)
メソッドの詳細

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 - パイプが壊れている場合
導入されたバージョン:
JDK1.1

read

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

定義:
クラス InputStream 内の read
戻り値:
データの次のバイト。ストリームの終わりに達した場合は -1
例外:
IOException - パイプが壊れている場合

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
パイプによる入力ストリームの len バイトまでのデータをバイトの配列に読み込みます。データストリームの終わりに達した場合は、len バイトより少ないデータしか読み込まれません。このメソッドは、少なくとも 1 バイトが使用できるようになるまでブロックします。スレッドがデータバイトを接続済みのパイプ出力ストリームに提供していたが、そのスレッドがもう生存していない場合は、IOException がスローされます。

オーバーライド:
クラス InputStream 内の read
パラメータ:
b - データの読み込み先のバッファ
off - データの開始オフセット
len - 読み込まれる最大バイト数
戻り値:
バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
例外:
IOException - 入出力エラーが発生した場合
関連項目:
InputStream.read()

available

public int available()
              throws IOException
ブロックせずにこの入力ストリームから読み込めるバイト数を返します。このメソッドは、上位クラスの available メソッドをオーバーライドします。

オーバーライド:
クラス InputStream 内の available
戻り値:
ブロックしないで入力ストリームから読み込むことができるバイト数
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JDK1.0.2

close

public void close()
           throws IOException
パイプによる入力ストリームを閉じ、そのストリームに関連するすべてのシステムリソースを解放します。

定義:
インタフェース Closeable 内の close
オーバーライド:
クラス InputStream 内の close
例外:
IOException - 入出力エラーが発生した場合

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。