FileDocCategorySizeDatePackage
MultiOutputStream.javaAPI DocExample1285Sat Feb 04 06:04:44 GMT 2006com.elharo.io

MultiOutputStream.java

package com.elharo.io;

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

public class MultiOutputStream extends FilterOutputStream {

  private List streams = new ArrayList();

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

  public void write(int b) throws IOException {  
    Iterator iterator = streams.iterator();
    while (iterator.hasNext()) {
      OutputStream out = (OutputStream) iterator.next();
      out.write(b);
    }
  }

  public void write(byte[] data, int offset, int length) 
   throws IOException {
    Iterator iterator = streams.iterator();
    while (iterator.hasNext()) {
      OutputStream out = (OutputStream) iterator.next();
      out.write(data, offset, length);
    }
  }

  public void flush() throws IOException {
    Iterator iterator = streams.iterator();
    while (iterator.hasNext()) {
      OutputStream out = (OutputStream) iterator.next();
      out.flush();
    }
  }
  
  public void close() throws IOException {
    Iterator iterator = streams.iterator();
    while (iterator.hasNext()) {
      OutputStream out = (OutputStream) iterator.next();
      out.close();
    }
  }
}