java.lang.Object
java.io.InputStream
java.io.PipedInputStream
- すべての実装されたインタフェース:
Closeable
,AutoCloseable
public class PipedInputStream extends InputStream
パイプで連結された入力ストリームは、パイプで連結された出力ストリームに接続するようにします。これによって、パイプで連結された入力ストリームが提供するデータ・バイトは、パイプで連結された出力ストリームにすべて書き込まれます。 通常、データは1つのスレッドによって
PipedInputStream
オブジェクトから読み込まれ、対応するPipedOutputStream
に別のスレッドによって書き込まれます。 単一のスレッドから両方のオブジェクトを使用することは、スレッドがデッドロックする可能性があるため推奨されていません。 パイプで連結された入力ストリームには一定範囲のバッファが含まれるため、読込み操作と書込み操作は分離されます。 接続済のパイプで連結された出力ストリームにデータ・バイトを提供していたスレッドが生存しなくなった場合は、パイプが壊れていると呼ばれます。 - 導入されたバージョン:
- 1.0
- 関連項目:
-
フィールドのサマリー
フィールド -
コンストラクタのサマリー
コンストラクタコンストラクタ説明PipedInputStream
を、まだ接続されないように作成します。PipedInputStream
(int pipeSize) PipedInputStream
を、まだ接続されないように作成します。その際、指定されたパイプ・サイズをパイプのバッファに使用します。PipedInputStream
を、パイプで連結された出力ストリームsrc
に接続されるように作成します。PipedInputStream
(PipedOutputStream src, int pipeSize) PipedInputStream
を、パイプで連結された出力ストリームsrc
に接続されるように作成します。その際、指定されたパイプ・サイズをパイプのバッファに使用します。 -
メソッドのサマリー
修飾子と型メソッド説明int
ブロックせずに入力ストリームから読み込むことができるバイト数を返します。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, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo
-
フィールド詳細
-
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
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
-b
がnull
である場合。IndexOutOfBoundsException
-off
が負の値の場合、len
が負の値の場合、あるいはlen
がb.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
- 入出力エラーが発生した場合。
-