// CopyFile.java -- copy a file byte-by-byte 

import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public final class CopyFile {
   private CopyFile () {} // This class is not for instantiation

   public static void main (final String[] args) throws IOException {
      final byte[] bytes = new byte[128];

      if (args.length < 2) {
         System.err.println ("Usage: java CopyFile <src> <dest>");
         return;
      }

      final InputStream  istream = new FileInputStream  (args[0]);
      final OutputStream ostream = new FileOutputStream (args[1]);

      try (istream;ostream) {
         while (true) {
            final int count = istream.read (bytes);
            if (count == -1) break;
            ostream.write (bytes, 0, count);
         }
      }
   } 
}