001 package railo.commons.io; 002 003 import java.io.IOException; 004 import java.io.OutputStream; 005 006 public final class ForkOutputStream extends OutputStream { 007 008 private final OutputStream os1; 009 private final OutputStream os2; 010 011 public ForkOutputStream(OutputStream os1,OutputStream os2) { 012 this.os1=os1; 013 this.os2=os2; 014 } 015 016 @Override 017 public void close() throws IOException { 018 try { 019 os1.close(); 020 } 021 finally { 022 os2.close(); 023 } 024 } 025 026 @Override 027 public void flush() throws IOException { 028 try { 029 os1.flush(); 030 } 031 finally { 032 os2.flush(); 033 } 034 } 035 036 @Override 037 public void write(byte[] b, int off, int len) throws IOException { 038 os1.write(b, off, len); 039 os2.write(b, off, len); 040 } 041 042 @Override 043 public void write(byte[] b) throws IOException { 044 os1.write(b); 045 os2.write(b); 046 } 047 048 public void write(int b) throws IOException { 049 os1.write(b); 050 os2.write(b); 051 } 052 053 }