/**
 * MultiOutputStream.java
 * @since 26.08.2008
 */
package de.anomic.http;

import java.io.IOException;
import java.io.OutputStream;

/**
 * writes to multiple {link OutputStream}s (parallel)
 * 
 * @author daniel
 * 
 */
class MultiOutputStream extends OutputStream {

    private final OutputStream[] streams;

    /**
     * creates a new MultiOutputStream
     * 
     * @param streams
     */
    public MultiOutputStream(final OutputStream[] streams) {
        super();
        // make a copy to avoid external modifications
        this.streams = new OutputStream[streams.length]; 
        System.arraycopy(streams, 0, this.streams, 0, streams.length);
    }

    /**
     * writes the byte to each of the streams
     * 
     * @see java.io.OutputStream#write(int)
     */
    @Override
    public void write(int b) throws IOException {
        for(OutputStream stream: streams) {
            stream.write(b);
        }
    }

}