JAVA
[JAVA] isFile(),isDirectory(),exists() 비교
징느K
2019. 1. 28. 13:00
오늘 포스팅에서는 'isFile(),isDirectory(),exists()를 비교' 해보려고 합니다.
세가지 메소드는 파일/폴더가 있는지 확인하여 파일/폴더가 없어서 생기는 에러를 방지하기 위해 주로 사용됩니다.
1) 메소드 비교
메소드명
| 설명 |
경로.isFile() | 경로가 file인지 확인한다. |
경로.isDirectory() | 경로가 directory(folder)인지 확인한다. |
경로.exists() | 경로에 file/directory(folder)가 존재하는지 확인한다. |
2) 실제 결과 비교
① 테스트할 디렉토리에 파일과 하위디렉토리를 넣어두었습니다. 아래의 [사진1]을 보시면
"C:\data\input\TestFile"에 파일 2개 (0000.txt,0001.txt)와 디렉토리(0002)가 있는것을 알 수 있습니다.
[사진1]
② 세가지 메소드가 어떤 기능을 수행하는지 확인하기 위해 아래 [사진2]와 같은 코드를 작성하였습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package posting; import java.io.File; public class FileCheck { public static void main(String[] args) { File file = new File("C:/data/input/TestFile/"); File[] txtList = file.listFiles(); // ① TestFile폴더 내의 파일 및 폴더를 'txtList'에 담는다. for (int j=0; j< txtList.length; j++) { // ② 'txtList'의 값을 하나씩 불러와서 System.out.println(txtList[j]); // ③ exists(),isFile(),isDirectory()로 각각 출력해본다 if(txtList[j].exists()) { System.out.println("exists() => txtList[j]가 존재합니다." ); } else System.out.println("exists() => txtList[j]가 존재하지 않습니다." ); if(txtList[j].isFile()) { System.out.println("isFile() => txtList[j]가 파일입니다." ); } else System.out.println("isFile() => txtList[j]는 파일이 아닙니다." ); if(txtList[j].isDirectory()) { System.out.println("isDirectory() => txtList[j]가 폴더입니다." ); } else System.out.println("isDirectory() =>txtList[j]는 폴더가 아닙니다" ); System.out.println("===========================================" ); } } } | cs |
[사진2]
③ [사진2]를 출력한 결과는 [사진3]입니다.
[사진3]
출력된 결과를 보면
exists()는 지정한 경로에 디렉토리/파일 구분없이 존재하는지를 확인
isFile()은 지정한 경로에 파일이 있는지 확인
isDirectory()는 지정한 경로에 디렉토리가 있는지 확인하고 있음을 알 수 있었습니다.
이상입니다.
감사합니다.