import java.io.BufferedOutputStream; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.FileNotFoundException; public class FileCopy4{ private static void usage(){ System.out.println("Usage: java FileCopy4 infile outfile"); System.exit(1); } public static void main(String [] args){ BufferedInputStream in=null; if (args.length <2) usage(); try{ in= new BufferedInputStream( new FileInputStream(args[0])); } catch (FileNotFoundException e){ System.out.println("bad input: "+args[0]); System.exit(1); } BufferedOutputStream out=null; try{ out =new BufferedOutputStream( new FileOutputStream(args[1])); } catch (FileNotFoundException e){ System.out.println("bad output: "+args[1]); System.exit(1); } StopWatch clock=new StopWatch(); clock.start(); long bytes=0; try { int b=in.read(); while (b>=0){ bytes++; out.write(b); b=in.read(); } } catch (IOException e){ System.out.println(e.getMessage()); System.exit(1); } clock.stop(); System.out.println(bytes+" bytes copied in "+ clock.getElapsedTime()+"ms"); } } //