Apache Commons IO - TeeInputStream
È un proxy InputStream che scrive in modo trasparente una copia di tutti i byte che vengono letti dal flusso proxy in un determinato OutputStream. Il flusso di input del proxy viene chiuso quando viene chiamato il metodo close () su questo proxy. Può essere utilizzato per gestire due flussi contemporaneamente.
Dichiarazione di classe
Di seguito è riportata la dichiarazione per org.apache.commons.io.input.TeeInputStream Classe -
public class TeeInputStream
extends ProxyInputStream
Esempio di classe TeeInputStream
In questo esempio, la chiusura di un TeeInputStream chiude gli oggetti TeeInputStream e TeeOutputStream.
IOTester.java
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.apache.commons.io.input.TeeInputStream;
import org.apache.commons.io.output.TeeOutputStream;
public class IOTester {
private static final String SAMPLE = "Welcome to TutorialsPoint. Simply Easy
Learning.";
public static void main(String[] args) {
try {
usingTeeInputStream();
}catch(IOException e) {
System.out.println(e.getMessage());
}
}
public static void usingTeeInputStream() throws IOException {
TeeInputStream teeInputStream = null;
TeeOutputStream teeOutputStream = null;
try {
ByteArrayInputStream inputStream = new
ByteArrayInputStream(SAMPLE.getBytes("US-ASCII"));
ByteArrayOutputStream outputStream1 = new ByteArrayOutputStream();
ByteArrayOutputStream outputStream2 = new ByteArrayOutputStream();
teeOutputStream = new TeeOutputStream(outputStream1, outputStream2);
teeInputStream = new TeeInputStream(inputStream, teeOutputStream, true);
teeInputStream.read(new byte[SAMPLE.length()]);
System.out.println("Output stream 1: " + outputStream1.toString());
System.out.println("Output stream 2: " + outputStream2.toString());
}catch (IOException e) {
System.out.println(e.getMessage());
} finally {
//teeIn.close() closes teeIn and teeOut which in turn closes the out1 and out2.
try {
teeInputStream.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
}
Produzione
Stamperà il seguente risultato.
Output stream 1: Welcome to TutorialsPoint. Simply Easy Learning.
Output stream 2: Welcome to TutorialsPoint. Simply Easy Learning.