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    }