File — 파일과 디렉터리 경로명의 추상 표현
File — 파일과 디렉터리 경로명의 추상 표현
File 클래스는 파일과 디렉터리 경로명의 추상적인 표현이에요. 사용자 인터페이스와 운영체제는 시스템에 의존하는 경로명 문자열로 파일과 디렉터리를 명명하며, 이 클래스는 계층적 경로명의 추상적이고 시스템 독립적인 뷰를 제공합니다.
본문
추상 경로명은 두 구성 요소로 이뤄져요: 선택적인 시스템 의존 접두 문자열(디스크 드라이브 지정자, 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 separator—separatorChar를 편의상 문자열로 나타낸 값이에요.static final char pathSeparatorChar— 시스템 의존 경로 구분 문자예요. UNIX에서는':', Windows에서는';'이에요.static final String pathSeparator—pathSeparatorChar를 문자열로 나타낸 값이에요.
생성자
File(String pathname)— 주어진 경로명 문자열을 추상 경로명으로 변환해File인스턴스를 만들어요.pathname이null이면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 파일 조작의 중심 클래스로, 파일의 생성·삭제·조회·목록 나열 등 광범위한 기능을 제공해요.