package com.onionnetworks.io;
import java.io.*;
import java.net.*;
public class JoiningInputStream extends FilterInputStream {
InputStream first, second;
/**
* @param first The first InputStream to read from
* @param second The second InputStream to read from
*/
public JoiningInputStream(InputStream first, InputStream second) {
super(first);
if (first == null || second == null) {
throw new NullPointerException();
}
this.first = first;
this.second = second;
}
/**
* wraps read(byte[],int,int) to read a single byte.
*/
public int read() throws IOException {
byte[] b = new byte[1];
if (read(b,0,1) == -1) {
return -1;
}
return b[0] & 0xFF;
}
public int read(byte[] b, int off, int len) throws IOException {
int c = in.read(b,off,len);
if (c == -1 && in == first) {
in = second;
return in.read(b,off,len);
} else {
return c;
}
}
public void close() throws IOException {
first.close();
second.close();
}
}