2012-01-04 16 views
1

入力ストリームを2つの入力ストリームにコピー/分割する方法はありますか?これは、ApacheのコモンズTeeOutputStreamに似ていますか?私は、入力ストリーム全体を別のスレッドで表示しながら、ストリームからいくつかの入力をフィルタリングしようとしています。Javaで入力ストリームをコピー/分割する方法は?

+4

があれば、ApacheのTeeOutputStreamを使用しない何らかの理由がありますそれはあなたが必要とするものですか? – fge

+0

@fgeそれは私の正確な最初の考えでした。 – Perception

+0

Q:Xのようなものを作るにはどうしたらいいですか? A:Xを使用してください! – skaffman

答えて

0

私はInputStreamFiltererクラスを記述します。このクラスは、元のInputStreamをコンストラクタにとりました。

getOriginalStreamとgetFilteredStreamの2つのメソッドを提供し、フィルターにかけたいデータを取り出すために読み取られたバイトをインターセプトするプロキシー/デリゲートでフィルターされたストリームをラップします。

この方法では、ストリームを読み込み時にフィルタリングすることを前提としており、データの使用方法については素朴です。文字エンコーディングにも注意してください。

0

入力ストリームを読み込んで、2つの異なる出力ストリームに書き込み、それらから読み込むことができます。

1

使用org.apache.commons.io.input.TeeInputStreamあなたはおそらくしたい

+0

別の出力にティーをかけたい場合はこれを使用し、それ以外の場合はProxyInputStream –

0

ProxyInputStream

例:

ProxyInputStream pis = new ProxyInputStream(conn.getInputStream()); 
関連する問題