FileDocCategorySizeDatePackage
MultiOutputStream.javaAPI DocExample1343Sun Mar 28 19:06:18 BST 1999com.macfaq.io

MultiOutputStream.java

package com.macfaq.io;

import java.io.*;
import java.util.*;


public class MultiOutputStream extends FilterOutputStream {

  Vector streams = new Vector();

  public MultiOutputStream(OutputStream out) {
    super(out);
    streams.addElement(out);
  }
  
  public synchronized void addOutputStream(OutputStream out) {
    streams.addElement(out);
  }

  public synchronized void write(int b) throws IOException {
  
    for (Enumeration e = streams.elements(); e.hasMoreElements();) {
      OutputStream out = (OutputStream) e.nextElement();
      out.write(b);
    }

  }

  public synchronized void write(byte[] data, int offset, int length) 
   throws IOException {

    for (Enumeration e = streams.elements(); e.hasMoreElements();) {
      OutputStream out = (OutputStream) e.nextElement();
      out.write(data, offset, length);
    }
    
  }

  public synchronized void flush() throws IOException {

    for (Enumeration e = streams.elements(); e.hasMoreElements();) {
      OutputStream out = (OutputStream) e.nextElement();
      out.flush();
    }

  }
  
  public synchronized void close() throws IOException {

    for (Enumeration e = streams.elements(); e.hasMoreElements();) {
      OutputStream out = (OutputStream) e.nextElement();
      out.close();
    }

  }

}