diff options
Diffstat (limited to 'core/src/main/java/org/spongycastle/util/io/TeeOutputStream.java')
-rw-r--r-- | core/src/main/java/org/spongycastle/util/io/TeeOutputStream.java | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/core/src/main/java/org/spongycastle/util/io/TeeOutputStream.java b/core/src/main/java/org/spongycastle/util/io/TeeOutputStream.java new file mode 100644 index 00000000..c7cdcf6e --- /dev/null +++ b/core/src/main/java/org/spongycastle/util/io/TeeOutputStream.java @@ -0,0 +1,62 @@ +package org.spongycastle.util.io; + +import java.io.IOException; +import java.io.OutputStream; + + +/** + * An output stream which copies anything written into it to another stream. + */ +public class TeeOutputStream + extends OutputStream +{ + private OutputStream output1; + private OutputStream output2; + + /** + * Base constructor. + * + * @param output1 the output stream that is wrapped. + * @param output2 a secondary stream that anything written to output1 is also written to. + */ + public TeeOutputStream(OutputStream output1, OutputStream output2) + { + this.output1 = output1; + this.output2 = output2; + } + + public void write(byte[] buf) + throws IOException + { + this.output1.write(buf); + this.output2.write(buf); + } + + public void write(byte[] buf, int off, int len) + throws IOException + { + this.output1.write(buf, off, len); + this.output2.write(buf, off, len); + } + + public void write(int b) + throws IOException + { + this.output1.write(b); + this.output2.write(b); + } + + public void flush() + throws IOException + { + this.output1.flush(); + this.output2.flush(); + } + + public void close() + throws IOException + { + this.output1.close(); + this.output2.close(); + } +}
\ No newline at end of file |