본문 바로가기

JAVA

java file 이동

Java에 파일 이동과 관련된 메소드가 얼마전까지만 해도 없다고 생각을 했다.

왜냐하면 

File file = new File(path);

file.m 까지 치고 없었으니까.. -0-;;;;;;;

그래서 다음과 같은 복사 후 삭제를 사용했었다.



파일 세개(용량은 830kb)를 복사하는데 3초가량이 걸렸다.......


그러던 중 왜없지? 라는 의문을 갖고 찾아보니 여러 방법이 있는데

첫째는 file의 renameTo 라는 메소드.

단점으로는 파일 시스템에 제한적인 부분이 많다고 한다. 하지만 정상적으로 수행될 경우

위에 3초가량이 걸렸던 것이 9ms로 약 .. 

차이가 많이난다.


사용방법은 

File fromFile = new File(fromFilePath);

File toFile = new File(toFilePath);

boolean result = fromFile.renameTo(toFile);

System.out.println("이동 성공여부 : " + result);


간단한데 일반적으로 체크되는 폴더의 존재여부 등은 그대로 체크해서 미리 구성해두어야한다.

한마디로 폴더가 없으면 실패, 파일시스템이 다르면 실패 등. 제약조건이 몇가지 존재한다.


마지막은 FileChannel을 이용하는 방법이다.


위의 renameTo보다는 느린 54ms만큼 시간이 걸렸다.

정확히 어떤 시기에 사용할 수 있는지 더 알아봐야 겠지만 일단은 위의 세.... 아니 두방식을 쓰도록 하는게 좋겠다.


java fileChannel docs:

http://docs.oracle.com/javase/6/docs/api/java/nio/channels/FileChannel.html


java fileChannel 설명 링크 : 

 http://tutorials.jenkov.com/java-nio/file-channel.html



참고하면 좋을 사이트 : 

http://bcho.tistory.com/288


'JAVA' 카테고리의 다른 글

[Java] File 시간  (0) 2012.08.29