// import java.io.*; public class TextCopy { public static void main(String args[]) { FileInputStream in = null; FileOutputStream out = null; String line; if (args[0].equalsIgnoreCase(args[1])) { // 원시파일과 목적파일이 같을 경우 종료 System.out.println("원시파일과 목적파일이 같습니다."); System.out.println("사용법: java TextCopy 원시파일 목적파일"); System.exit(1); } try { in = new FileInputStream(args[0]); // args[0]을 파일 이름으로 하는 파일 입력 스트림 생성 out = new FileOutputStream(args[1]); // args[1]을 파일 이름으로 하는 파일 출력 스트림 생성 } catch (Throwable e) { System.out.println("사용법: java TextCopy 원시파일 목적파일"); System.exit(1); } DataInputStream dis = new DataInputStream(in); // DataInputStream을 사용하여 파일 입력 스트림을 조작한다. PrintStream ps = new PrintStream(out); // PrintStream을 사용하여 파일 출력 스트림을 조작한다. try { // EOF는 -1이지만 다음의 while 루프는 반환된 스트링이 널이 될 때까지 반복해서 수행된다. while ((line = dis.readLine()) != null) { ps.println(line); // 파일에 출력한다. System.out.println(line); // 표준 출력에 출력한다. } in.close(); // 입력 파일을 닫는다. out.close(); // 출력 파일을 닫는다. } catch(IOException e) { System.out.println("입출력 에러"); System.exit(1); } } }