File — 파일과 디렉터리 경로명의 추상 표현

File — 파일과 디렉터리 경로명의 추상 표현

File 클래스는 파일과 디렉터리 경로명의 추상적인 표현이에요. 사용자 인터페이스와 운영체제는 시스템에 의존하는 경로명 문자열로 파일과 디렉터리를 명명하며, 이 클래스는 계층적 경로명의 추상적이고 시스템 독립적인 뷰를 제공합니다.

출처: Java API Reference

본문

추상 경로명은 두 구성 요소로 이뤄져요: 선택적인 시스템 의존 접두 문자열(디스크 드라이브 지정자, UNIX 루트 디렉터리의 "/", Microsoft Windows UNC 경로의 "\\\\" 등)과, 0개 이상의 이름 문자열의 시퀀스입니다. 추상 경로명의 첫 번째 이름은 디렉터리 이름이거나 (Windows UNC 경로의 경우) 호스트 이름일 수 있으며, 마지막 이름은 디렉터리나 파일을 나타내요. 빈 추상 경로명은 접두가 없고 빈 이름 시퀀스를 가져요.

경로명 문자열에서 추상 경로명으로 변환할 때 각 이름은 경로 구분 문자 한 개로 구분되며, 이 문자는 시스템 속성 file.separator로 정의되고 separator, separatorChar 공개 정적 필드로 제공됩니다. 경로명은 절대(absolute)이거나 상대(relative)일 수 있어요. 상대 경로명은 java.io 패키지가 현재 사용자 디렉터리(시스템 속성 user.dir)를 기준으로 해석합니다.

File 인스턴스는 불변이며, 한 번 생성되면 File 객체가 나타내는 추상 경로명은 절대 바뀌지 않아요. java.nio.file 패키지와의 상호 운용을 위해 toPath()Path를 얻을 수 있고, Files 클래스와 함께 사용해 더 효율적이고 광범위한 파일 접근·파일 속성·I/O 예외를 활용할 수 있어요.

필드

  • static final char separatorChar — 시스템 의존 기본 이름 구분 문자예요. UNIX에서는 '/', Windows에서는 '\\'이에요.
  • static final String separatorseparatorChar를 편의상 문자열로 나타낸 값이에요.
  • static final char pathSeparatorChar — 시스템 의존 경로 구분 문자예요. UNIX에서는 ':', Windows에서는 ';'이에요.
  • static final String pathSeparatorpathSeparatorChar를 문자열로 나타낸 값이에요.

생성자

  • File(String pathname) — 주어진 경로명 문자열을 추상 경로명으로 변환해 File 인스턴스를 만들어요. pathnamenull이면 NullPointerException을 던져요.
  • File(String parent, String child) — 부모 경로명 문자열과 자식 경로명 문자열로부터 File을 만들어요.
  • File(File parent, String child) — 부모 추상 경로명과 자식 경로명 문자열로부터 File을 만들어요.
  • File(URI uri) — 주어진 file: URI를 추상 경로명으로 변환해 File을 만들어요.

메서드 (주요)

  • boolean exists() — 파일/디렉터리가 존재하는지 테스트해요.
  • boolean isDirectory(), boolean isFile(), boolean isHidden() — 유형을 검사해요.
  • long length() — 파일 길이를 반환해요.
  • long lastModified() — 마지막 수정 시간을 반환해요.
  • boolean canRead(), boolean canWrite(), boolean canExecute() — 권한을 검사해요.
  • String getName(), String getPath(), String getAbsolutePath(), String getCanonicalPath() — 경로 관련 정보를 반환해요.
  • File getParentFile() — 부모 디렉터리의 추상 경로명을 반환해요.
  • boolean isAbsolute() — 절대 경로인지 테스트해요.
  • boolean createNewFile() — 이름이 없을 때에만 원자적으로 새 빈 파일을 만들어요.
  • boolean mkdir(), boolean mkdirs() — 디렉터리를 만들어요.
  • boolean delete() — 파일이나 디렉터리를 삭제해요.
  • boolean renameTo(File dest) — 파일 이름을 바꿔요.
  • String[] list(), File[] listFiles(), File[] listFiles(FileFilter filter), File[] listFiles(FilenameFilter filter) — 디렉터리 내용을 나열해요.
  • static File createTempFile(String prefix, String suffix) — 기본 임시 디렉터리에 빈 파일을 만들어요.
  • Path toPath() — 추상 경로로부터 java.nio.file.Path 객체를 반환해요.

File은 전통적인 java.io 파일 조작의 중심 클래스로, 파일의 생성·삭제·조회·목록 나열 등 광범위한 기능을 제공해요.

더 알아보기 (Learn more)