자바에서 파일을 읽을 때 일반적으로 파일경로에 현재 디렉토리(./)나 상위 디렉토리(../)를 포함하지 않습니다.
그래도 혹시나 포함하는 경우 파일 위치를 getPath나 getAbsolutePath를 통해 확인하면
현재 디렉토리와 상위 디렉토리가 포함돼서 조회됩니다.
이럴 때 getCanonicalPath를 사용하면 현재 디렉토리와 상위 디렉토리가 포함되지 않습니다.
위의 예제 코드를 보면 현재 디렉토리와 상위 디렉토리가 포함되는 파일 위치를 조회하면
그대로 포함되는 것을 확인할 수 있습니다.(9~14라인)
하지만 현재 디렉토리와 상위 디렉토리가 포함되지 않는 파일 위치를 조회하면
포함되지 않는 것을 확인할 수 있습니다.(16~20라인)
정리하면 getPath는 현재 디렉토리를 기준으로 파일 위치를 조회하는데
현재 디렉토리와 상위 디렉토리가 포함되는 경우 생략하지 않고 현재 위치까지 절대경로를 표출합니다.
getAbsolutePath는 파일 위치를 조회하는데
현재 디렉토리와 상위 디렉토리가 포함되는 경우 생략하지 않고 현재 위치까지 절대경로를 표출합니다.
getCanonicalPath는 현재 디렉토리와 상위 디렉토리가 포함되는 경우 생략학고 절대경로를 표출합니다.
'dev > 자바' 카테고리의 다른 글
네이버 메일 SMTP (0) | 2023.05.15 |
---|---|
Array List min max (0) | 2023.05.12 |
hashCode equals (0) | 2023.02.16 |
Java Reflection (0) | 2023.02.15 |
Custom Exception (0) | 2022.12.13 |