4 import java.io.FileInputStream;
5 import java.io.FileOutputStream;
6 import java.io.IOException;
8 public class FileCopier {
9 protected static final int FILE_COPY_BUFFER_SIZE = 65536;
11 protected FileCopier() {
14 public static void copyFile(File aSourceFile, File aDestinationFile) throws IOException {
15 FileInputStream inputStream;
16 FileOutputStream outputStream;
18 byte[] buffer = new byte[FILE_COPY_BUFFER_SIZE];
20 inputStream = new FileInputStream(aSourceFile);
22 File directory = new File(aDestinationFile.getParent());
23 if (directory!=null && !directory.exists()){
26 outputStream = new FileOutputStream(aDestinationFile);
29 nrBytesRead = inputStream.read(buffer);
31 outputStream.write(buffer, 0, nrBytesRead);
33 while (nrBytesRead>=0);
44 public static void copyDirectory(File aSourceDirectory, File aDestinationDirectory) throws IOException {
48 File[] files = aSourceDirectory.listFiles();
50 if (!aDestinationDirectory.exists())
51 aDestinationDirectory.mkdirs();
53 for (i=0; i<files.length; i++) {
54 sourceFile = files[i];
55 destinationFile=new File(aDestinationDirectory, sourceFile.getName());
56 if (sourceFile.isDirectory()) {
57 if (!destinationFile.exists())
58 destinationFile.mkdir();
59 copyDirectory(sourceFile, destinationFile);
62 copyFile(sourceFile, destinationFile);
67 public static void copy(File aSource, File aDestination) throws IOException {
68 if (aSource.isDirectory()) {
69 copyDirectory(aSource, aDestination);
71 else if (aDestination.isDirectory()) {
72 copyFile(aSource, new File(aDestination, aSource.getName()));
75 copyFile(aSource, aDestination);