No, it only reminds the user of the correct order. The user is expected to start the program without arguments to get a reminder.
The class File
could be
used to check if a file already
exists (and then not used as the destination).
The program could be improved by using that class.
But for now, here is the complete program:
import java.io.*; class CopyBytes { public static void main ( String[] args ) { DataInputStream instr; DataOutputStream outstr; if ( args.length != 3 || !args[1].toUpperCase().equals("TO") ) { System.out.println("java CopyBytes source to destination"); return; } try { instr = new DataInputStream( new BufferedInputStream( new FileInputStream( args[0] ))); outstr = new DataOutputStream( new BufferedOutputStream( new FileOutputStream( args[2] ))); try { int data; while ( true ) { data = instr.readUnsignedByte() ; outstr.writeByte( data ) ; } } catch ( EOFException eof ) { outstr.close(); instr.close(); return; } } catch ( FileNotFoundException nfx ) { System.out.println("Problem opening files" ); } catch ( IOException iox ) { System.out.println("IO Problems" ); } } }
A computer's operating system comes with a file copy command, so there is no practical use for this program. But it is a foundation for many programs that are of practical use. Various data transformations can be done by slipping in some statements between the reading and the writing of the byte.