ApplyCommand: use Files#copy to copy file

This should be faster.

Change-Id: I404ec5e66731b3cf7a8e621cf1ff8748d109ea69
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java
index e11e683..0d4b3da 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/ApplyCommand.java
@@ -17,6 +17,7 @@
 import java.io.InputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.nio.file.Files;
 import java.nio.file.StandardCopyOption;
 import java.text.MessageFormat;
 import java.util.ArrayList;
@@ -34,7 +35,6 @@
 import org.eclipse.jgit.patch.HunkHeader;
 import org.eclipse.jgit.patch.Patch;
 import org.eclipse.jgit.util.FileUtils;
-import org.eclipse.jgit.util.IO;
 
 /**
  * Apply a patch to files and/or to the index.
@@ -125,14 +125,9 @@
 					break;
 				case COPY:
 					f = getFile(fh.getOldPath(), false);
-					byte[] bs = IO.readFully(f);
-					File target = getFile(fh.getNewPath(), true);
-					FileOutputStream fos = new FileOutputStream(target);
-					try {
-						fos.write(bs);
-					} finally {
-						fos.close();
-					}
+					File target = getFile(fh.getNewPath(), false);
+					FileUtils.mkdirs(target.getParentFile(), true);
+					Files.copy(f.toPath(), target.toPath());
 					apply(target, fh);
 				}
 				r.addUpdatedFile(f);