Io opto per questa soluzione:

codice:
 public void copyFile(File in, File out) throws Exception {
     FileChannel sourceChannel = new
          FileInputStream(in).getChannel();
     FileChannel destinationChannel = new
          FileOutputStream(out).getChannel();
     sourceChannel.transferTo(0, sourceChannel.size(), destinationChannel);
     // oppure
     //  destinationChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
     sourceChannel.close();
     destinationChannel.close();
     }
sembra più perfomante che utilizzare solo Stream, con read & write

Alfredo