import java.io.*;
public class SafeFileCopier {
public static void main(String[] args) throws IOException {
if (args.length != 2) {
System.err.println("Usage: java FileCopier infile outfile");
}
else copy(new File(args[0]), new File(args[1]));
}
public static void copy(File inFile, File outFile) throws IOException {
if (inFile.getCanonicalPath().equals(outFile.getCanonicalPath())) {
// inFile and outFile are the same;
// hence no copying is required.
return;
}
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(inFile));
out = new BufferedOutputStream(new FileOutputStream(outFile));
for (int c = in.read(); c != -1; c = in.read()) {
out.write(c);
}
}
finally {
if (in != null) in.close();
if (out != null) out.close();
}
}
}
|