The code below will copy files from one directory to
another with minimal error checking.
=================================================================
import java.io.*;
public class copy {
public static final int BUFFER_SIZE = 4096;
public static final void copyStream(InputStream input, OutputStream output,
byte[] buffer)
throws IOException
{
int bytesRead;
while((bytesRead = input.read(buffer)) != -1)
output.write(buffer, 0, bytesRead);
}
public static final void main(String[] args) {
byte[] buffer = new byte[BUFFER_SIZE];
BufferedInputStream input;
BufferedOutputStream output;
File destination;
if(args.length
< 2) {
System.err.println("Usage: copy file1 file2 ... dest");
return;
}
try {
destination = new File(args[args.length - 1]);
buffer = new byte[BUFFER_SIZE];
if(args.length > 2 || destination.isDirectory()) {
if(!destination.isDirectory()) {
System.err.println(
"When copying multiple files, last argument must be a directory.");
return;
}
for(int i= 0;i < (args.length - 1); ++i) {
File inFile;
inFile = new File(args[i]);
input =
new BufferedInputStream(new FileInputStream(inFile));
output =
new BufferedOutputStream(new FileOutputStream(
new File(destination, inFile.getName())));
copyStream(input, output, buffer);
input.close();
output.close();
}
} else {
input =
new BufferedInputStream(new FileInputStream(args[0]));
output =
new BufferedOutputStream(new FileOutputStream(destination));
copyStream(input, output, buffer);
input.close();
output.close();
}
} catch(IOException ioe) {
ioe.printStackTrace();
return;
}
}
}