개인참고자료/자바(네트워크)

문자 스트림 - 텍스트 파일 복사(FileReader, FileWriter)

경진 2008. 7. 14. 00:18
FileReader와 FileWriter를 이용한 텍스트 파일 복사

※ 실제로 개발할 때는 파일을 복사하는 프로그램의 작성은 바이트 단위 IO 클래스인 FileInputStream과 FileOutputStream을 이용하는 것이 좋다. 모든 파일이 바이트 단위로 구성되어 있기 때문이다.

import java.io.*;

public class FileCopy {

    public static void main(String[] args) {
        if(args.length != 2){
            System.out.println("사용법 : java FileCopy 파일명1 파일명2");
            System.exit(0);
        } //if

        FileReader fr = null;
        FileWriter fw = null;
        try{
            fr = new FileReader(args[0]);
            fw = new FileWriter(args[1]);
            char[] buffer = new char[512];
            int readcount = 0;
            while((readcount = fr.read(buffer)) != -1){
                fw.write(buffer,0,readcount);
            }
            System.out.println("파일을 복사하였습니다.");
        }catch(Exception ex){
            System.out.println(ex);
        }finally{
            try{
                fr.close();
                fw.close();
            }catch(Exception e){}
        }
    }
}

        FileReader fr = null;
        FileWriter fw = null;
        try{
            fr = new FileReader(args[0]);
            fw = new FileWriter(args[1]);

arg[0]으로 지정한 파일로부터 읽어 들이는 FileReader객체와 arg[1]로 지정한 파일에 쓰는 FileWriter 객체를 생성한다.

            char[] buffer = new char[512];
            int readcount = 0;
            while((readcount = fr.read(buffer)) != -1){
                fw.write(buffer,0,readcount);
            }
            System.out.println("파일을 복사하였습니다.");

FileReader에 있는 read 메소드를 이용해서 배열 buffer에 파일로 부터 문자열을 읽어 들이고 Fileriter에 있는 Writer 메소드를 이용해서 배열 buffer에 저장된 문자열을 파일에 출력한다.