파일입출력 방법에 따른 시간비교 

가장 기본적인 입출력 방식 FileInputStream


fis = new FileInputStream(readPoint + fileName);


fos = new FileOutputStream(savePoint + fileName);

while( (dump = fis.read()) != -1){

fos.write(dump);

} // while end;


 3.54MB 짜리 파일 복사시간 : 17953 ms = 17초







FileReader 를 이용한 방법

fr = new FileReader(readPoint + fileName);

fw = new FileWriter(savePoint + fileName);

while( (dump = fr.read()) != -1){

fw.write(dump);

}


3.54MB 짜리 파일 복사시간 : 1265 ms = 1.2초




BufferedStream 을 이용한 방법


bis = new BufferedInputStream(new FileInputStream(readPoint + fileName));

bos = new BufferedOutputStream(new FileOutputStream(savePoint + fileName));

while( (dump = bis.read()) != -1){

bos.write(dump);

} // while end;

3.54MB 짜리 파일 복사시간 : 422 ms = 0.4초 









NIO 를 이용한 파일 입출력 

public static void fileWriter(String from, String to){

FileInputStream fis = null;

FileOutputStream fos = null;

FileChannel in = null;

    FileChannel out = null;

try{

fis = new FileInputStream(from);

fos = new FileOutputStream(to);

in = fis.getChannel();

out = fos.getChannel();

in.transferTo(0, in.size(), out);

} catch (Exception e){

e.printStackTrace();

} finally {

클로즈들..........

}

}

 3.54MB 짜리 파일 복사시간 : 47 ms = 0.047초
  



걸린 시간과 소스를 보면 NIO 를 이용하는게 훨씬 나은 방법이라는 걸 알수있다.

지금까지의 방법중 가장 간단하고, 가장 빠르게 복사하는 방법이다. 


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST