SequenceInputStream
java.io.SequenceInputStreamを使うと、複数のストリームを連結して1つのストリームとして扱うことができます。
- ストリームを読み、最後まで読み込んだら次のストリームを読みます。(このとき、読み終えたストリームは順次close()されるようです。)
- SequenceInputStreamをcloseすると、連結したストリームもcloseされます。
// ストリームx2 InputStream a = new ByteArrayInputStream("foo".getBytes()); InputStream b = new ByteArrayInputStream("var".getBytes()); InputStream in = null; try { // SequenceInputStreamで連結 in = new SequenceInputStream (a, b); BufferedReader r = new BufferedReader( new InputStreamReader( in, "UTF-8" )); System.out.println( r.readLine() ); } finally { if ( in != null ) { // SequenceInputStreamを閉じれば、 // a,b共にcloseされる。 in.close(); } }
実行結果です。
foovar