티스토리 뷰

자바/JAVA 입문

JAVA 파일 복사

주년 2011. 10. 11. 14:14
JAVA 파일 복사

▶ 파일명 복사하기
FileInputStream과 FileOutputStream을 이용해도 되고 FileReader와 FileWriter을 사용해도 된다.
FileInputStream fis=new FileInputStream("원본파일복사");  //파일위치의 경로를 지정해줘야 한다
FileOutputStream fis1=new FileInputStream("복사파일명")

import java.io.*;

public class kkk{
    public static void main(String args[])throws IOException{
   
        int i,len=0;
        FileInputStream fis=new FileInputStream(args[0]);
        FileOutputStream fis1=new FileOutputStream(args[1]);
        long psecond=System.currentTimeMillis();
        while((i=fis.read())!=-1){                    //입력스티림에서 한 바이트씩 읽고 출력 스트림으로 바로 내보내기
            fis1.write(i);
            len++;
       
        }
        fis.close();
        fis1.close();
        psecond=System.currentTimeMillis()-psecond;            //파일을 복사하는 시간을 측정
        System.out.println(len+"byte   "+psecond+"miliseconds");
    }
}


▶Buffered 스트림을 이용한 파일복사 예제

import java.io.*;

public class kkk{
    public static void main(String args[])throws IOException{
   
        int i,len=0;
        FileInputStream fis=new FileInputStream(args[0]);
        FileOutputStream fis1=new FileOutputStream(args[1]);

        BufferedInputStream bis=new BufferedInputStream(fis);
        BufferedOutputStream bis1=new BufferedOutputStream(fis1);
        long psecond=System.currentTimeMillis();
        while((i=bis.read())!=-1){
            bis1.write(i);
            len++;
       
        }
        bis.close();
        bis1.close();
        psecond=System.currentTimeMillis()-psecond;
        System.out.println(len+"byte  "+psecond+"miliseconds");
    }
}

●위 두 로직의 결과를 보면 Buffered스트림이 빠른시간에 파일 복사가 되는 것을 확인 할 수 있다
    보통의 경우 스트림을 이용한다면 Buffered 스트림으로 변화해서 처리하는것이 좋다

[출처] Stream7(파일복사)|작성자 수오미