[질문]파일 복사 빨리 하는방법..?
한결
import java.io.*;
public class FileTest{
public static void main(String[]args)throws IOException{
int i;
FileInputStream fis = new FileInputStream(args[0]);
FileOutputStream fos = new FileOutputStream(args[1]); while((i=fis.read()) !=-1 ){
fos.write(i);
}
}
}
이런 식의 단순한 코드 가 있는데요
작은 파일복사 는 상관 없는데 한 40메가 정도 의 동영상을 복사 해보았는데
너무 느리네요...오래걸리구 윈도우 상에서는 2초도 안걸리는데
한 5분 정도는 걸리네요..
이런 현상은 자바언어로 짠 위의 프로그램의 처리 속도가 느려서 입니까?/
사실 위의 코드 처럼 자바 자체가 지원해주는 클래스 메서드만으로 코딩을 했는데
속도가 느릴경우 어떻게 빠르게 대처를 할까요??
-
꿈빛
자바의 API를 이용해서 Performance 가 안 나올 경우
JNI를 이용해서 바로 윈도우즈의 파일 API를 call 하는 방법도 있습니다.
Performance Tuning 측면에서 JNI를 쓰곤 합니다. -
바론
아 하 글쿤요...1바이트 씩 읽어서 느린거였군요..^^ 갑사합니다`
-
두힘
NIO 에 있는 FileChannel 을 이용해 보심이.. Runtime 은 제일 빠르기는 하겠지만 프로세스 띄우기 까지 시간이 좀 걸릴겁니다.
-
딥체리
으흐~ 버퍼더인풋스트림이나 버퍼더리더를 이용해서 해 보세요~ ^_^
버퍼를 이용해서 하면 속도가 좀 나올겁니다 ^_^ -
소1유물
1byte 씩 읽어서 복사하면 좀 느리겠네요.
-
솔길
RunTime 객체를 이용해서 직접 도스 커멘드를 실행하면 빠르지 않을까 생각합니다.