- java.lang.Object
- 
- java.io.InputStream
- 
- java.io.PipedInputStream
 
 
- 
- すべての実装されたインタフェース:
- Closeable,- AutoCloseable
 
 public class PipedInputStream extends InputStream パイプで連結された入力ストリームは、パイプで連結された出力ストリームに接続するようにします。これによって、パイプで連結された入力ストリームが提供するデータ・バイトは、パイプで連結された出力ストリームにすべて書き込まれます。 通常、データは1つのスレッドによってPipedInputStreamオブジェクトから読み込まれ、対応するPipedOutputStreamに別のスレッドによって書き込まれます。 単一のスレッドから両方のオブジェクトを使用することは、スレッドがデッドロックする可能性があるため推奨されていません。 パイプで連結された入力ストリームには一定範囲のバッファが含まれるため、読込み操作と書込み操作は分離されます。 接続済のパイプで連結された出力ストリームにデータ・バイトを提供していたスレッドが生存しなくなった場合は、パイプが壊れていると呼ばれます。- 導入されたバージョン:
- 1.0
- 関連項目:
- PipedOutputStream
 
- 
- 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 PipedInputStream()PipedInputStreamを、まだ接続されないように作成します。PipedInputStream(int pipeSize)PipedInputStreamを、まだ接続されないように作成します。その際、指定されたパイプ・サイズをパイプのバッファに使用します。PipedInputStream(PipedOutputStream src)PipedInputStreamを、パイプで連結された出力ストリームsrcに接続されるように作成します。PipedInputStream(PipedOutputStream src, int pipeSize)PipedInputStreamを、パイプで連結された出力ストリームsrcに接続されるように作成します。その際、指定されたパイプ・サイズをパイプのバッファに使用します。
 - 
メソッドのサマリー修飾子と型 メソッド 説明 intavailable()ブロックせずに入力ストリームから読み込むことができるバイト数を返します。voidclose()パイプによる入力ストリームを閉じ、そのストリームに関連するすべてのシステム・リソースを解放します。voidconnect(PipedOutputStream src)パイプで連結された入力ストリームをパイプで連結された出力ストリームsrcに接続します。intread()パイプで連結された入力ストリームからデータの次のバイトを読み込みます。intread(byte[] b, int off, int len)最大lenバイトのデータを、このパイプで連結された入力ストリームからバイト配列に読み込みます。protected voidreceive(int b)データのバイトを受け取ります。- 
クラス java.io.InputStreamで宣言されたメソッドmark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo
 
- 
 
- 
- 
- 
フィールドの詳細- 
PIPE_SIZEprotected static final int PIPE_SIZE パイプの循環入力バッファのデフォルト・サイズです。- 導入されたバージョン:
- 1.1
- 関連項目:
- 定数フィールド値
 
 - 
bufferprotected byte[] buffer 入ってくるデータを置く循環バッファです。- 導入されたバージョン:
- 1.1
 
 - 
inprotected int in データの次のバイトをパイプで連結された接続済みの出力ストリームから受け取ったときに、その次のバイトを格納する循環バッファのインデックス位置です。in<0はバッファが空であることを示し、in==outはバッファがいっぱいであることを示します。- 導入されたバージョン:
- 1.1
 
 - 
outprotected int out パイプで連結されたこの入力ストリームがデータの次のバイトを読み込む、循環バッファのインデックス位置です。- 導入されたバージョン:
- 1.1
 
 
- 
 - 
コンストラクタの詳細- 
PipedInputStreampublic PipedInputStream(PipedOutputStream src) throws IOException PipedInputStreamを、パイプで連結された出力ストリームsrcに接続されるように作成します。srcに書き込まれたデータ・バイトは、このストリームからの入力として使えるようになります。- パラメータ:
- src- 接続先のストリーム。
- 例外:
- IOException- 入出力エラーが発生した場合。
 
 - 
PipedInputStreampublic PipedInputStream(PipedOutputStream src, int pipeSize) throws IOException PipedInputStreamを、パイプで連結された出力ストリームsrcに接続されるように作成します。その際、指定されたパイプ・サイズをパイプのバッファに使用します。srcに書き込まれたデータ・バイトは、このストリームからの入力として使えるようになります。- パラメータ:
- src- 接続先のストリーム。
- pipeSize- パイプのバッファのサイズ。
- 例外:
- IOException- 入出力エラーが発生した場合。
- IllegalArgumentException-- pipeSize <= 0の場合。
- 導入されたバージョン:
- 1.6
 
 - 
PipedInputStreampublic PipedInputStream() 
 - 
PipedInputStreampublic PipedInputStream(int pipeSize) PipedInputStreamを、まだ接続されないように作成します。その際、指定されたパイプ・サイズをパイプのバッファに使用します。 使用前に、それをPipedOutputStreamに接続する必要があります。- パラメータ:
- pipeSize- パイプのバッファのサイズ。
- 例外:
- IllegalArgumentException-- pipeSize <= 0の場合。
- 導入されたバージョン:
- 1.6
 
 
- 
 - 
メソッドの詳細- 
connectpublic void connect(PipedOutputStream src) throws IOException パイプで連結された入力ストリームをパイプで連結された出力ストリームsrcに接続します。 このオブジェクトが別のパイプで連結された出力ストリームにすでに接続されている場合は、IOExceptionがスローされます。srcがパイプによる未接続の出力ストリームで、snkがパイプによる未接続の入力ストリームである場合、2つのストリームは以下の呼出しのどちらかによって接続されます。snk.connect(src)または src.connect(snk)2つの呼出しは同じ効果を持ちます。 - パラメータ:
- src- パイプによる接続先の出力ストリーム。
- 例外:
- IOException- 入出力エラーが発生した場合。
 
 - 
receiveprotected void receive(int b) throws IOExceptionデータのバイトを受け取ります。 このメソッドは、有効な入力がない場合はブロックします。- パラメータ:
- b- 受け取るバイト
- 例外:
- IOException- パイプが- brokenの状態である場合、- unconnectedの状態である場合、閉じられている場合、または入出力エラーが発生した場合。
- 導入されたバージョン:
- 1.1
 
 - 
readpublic int read() throws IOExceptionパイプで連結された入力ストリームからデータの次のバイトを読み込みます。 バイト値は、0-255の範囲のintとして返されます。 入力データが読み込めるようになるか、ストリームの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。- 定義:
- read、クラス:- InputStream
- 戻り値:
- データの次のバイト。ストリームの終わりに達した場合は-1。
- 例外:
- IOException- パイプが- unconnectedの状態である場合、- brokenの状態である場合、閉じられている場合、または入出力エラーが発生した場合。
 
 - 
readpublic 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-- bが- nullである場合。
- IndexOutOfBoundsException-- offが負の値の場合、- lenが負の値の場合、あるいは- lenが- b.length - offより大きい場合
- IOException- パイプが- brokenの状態である場合、- unconnectedの状態である場合、閉じられている場合、または入出力エラーが発生した場合。
- 関連項目:
- InputStream.read()
 
 - 
availablepublic int available() throws IOExceptionブロックせずに入力ストリームから読み込むことができるバイト数を返します。- オーバーライド:
- available、クラス:- InputStream
- 戻り値:
- この入力ストリームからブロックせずに読み込むことができるバイト数。あるいは、この入力ストリームがclose()メソッドを呼び出すことにより閉じられた場合、またはパイプがunconnectedやbrokenの状態である場合は0。
- 例外:
- IOException- 入出力エラーが発生した場合。
- 導入されたバージョン:
- 1.0.2
 
 - 
closepublic void close() throws IOExceptionパイプによる入力ストリームを閉じ、そのストリームに関連するすべてのシステム・リソースを解放します。- 定義:
- close、インタフェース:- AutoCloseable
- 定義:
- close、インタフェース:- Closeable
- オーバーライド:
- close、クラス:- InputStream
- 例外:
- IOException- 入出力エラーが発生した場合。
 
 
- 
 
-