// CopyTextFileC.java -- copy a text file char-by-char import java.io.Reader; import java.io.FileReader; import java.io.Writer; import java.io.PrintWriter; import java.io.IOException; import java.io.FileNotFoundException; public class CopyTextFileC { public static void main (final String[] args) { if (args.length < 2) { System.err.println ("Usage: java CopyTextFile <src> <dest>"); } else { try { main (args[0], args[1]); } catch (final IOException ex) { ex.printStackTrace(); } } } public static void main (final String file1, final String file2) throws IOException { Reader reader = null; Writer writer = null; try { reader = new FileReader (file1); writer = new PrintWriter (file2); main (reader, writer); } catch (final FileNotFoundException ex) { ex.printStackTrace(); } catch (final IOException ex) { ex.printStackTrace(); } finally { if (reader!=null) reader.close(); if (writer!=null) writer.close(); } } public static void main (final Reader reader, final Writer writer) throws IOException { // Read input stream line by line while (true) { final int ch = reader.read(); // get next char if (ch==-1) break; // exit when end-of-file writer.write (ch); // write char } } }