Mega Code Archive

 
Categories / Java Tutorial / File
 

Extends FilterOutputStream

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FilterOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class MainClass {   public static void main(String[] args) throws IOException {     if (args.length != 3) {       System.out.println("Usage: java TeeCopier infile outfile1 outfile2");       return;     }     FileInputStream fin = new FileInputStream(args[0]);     FileOutputStream fout1 = new FileOutputStream(args[1]);     FileOutputStream fout2 = new FileOutputStream(args[2]);     MyOutputStream tout = new MyOutputStream(fout1, fout2);     copy(fin, tout);     fin.close();     tout.close();   }   public static void copy(InputStream in, OutputStream out) throws IOException {     byte[] buffer = new byte[1024];     while (true) {       int bytesRead = in.read(buffer);       if (bytesRead == -1)         break;       out.write(buffer, 0, bytesRead);     }   } } class MyOutputStream extends FilterOutputStream {   private OutputStream out1;   private OutputStream out2;   public MyOutputStream(OutputStream stream1, OutputStream stream2) {     super(stream1);     out1 = stream1;     out2 = stream2;   }   public void write(int b) throws IOException {     out1.write(b);     out2.write(b);   }   public void write(byte[] data, int offset, int length) throws IOException {     out1.write(data, offset, length);     out2.write(data, offset, length);   }   public void flush() throws IOException {     out1.flush();     out2.flush();   }   public void close() throws IOException {     out1.close();     out2.close();   } }