Para seleccionar el fichero usa JFileChooser, para copiar el fichero a otra carpeta usa este código de 
http://www.java-tips.org/- // If targetLocation does not exist, it will be created. 
-  public void-  copyDirectory (File-  sourceLocation ,  File-  targetLocation )
 
-   
-      if (sourceLocation.isDirectory()) { 
-          if (!targetLocation.exists()) { 
-              targetLocation.mkdir(); 
-          } 
-   
-          String[]-  children  =-  sourceLocation. list();
 
-          for (int i=0; i<children.length; i++) { 
-              copyDirectory (new File(- sourceLocation, children [- i ])- , 
-                      new File(- targetLocation, children [- i ]));
 
-          } 
-      } else { 
-   
-   
-          // Copy the bits from instream to outstream 
-          byte[] buf = new byte[1024]; 
-          int len; 
-          while ((len = in.read(buf)) > 0) { 
-              out.write(buf, 0, len); 
-          } 
-          in.close(); 
-          out.close(); 
-      } 
-  }