FileSystem — 파일 시스템에 대한 인터페이스를 제공하고 객체 접근의 팩토리 역할

FileSystem — 파일 시스템에 대한 인터페이스를 제공하고 객체 접근의 팩토리 역할

FileSystem은 파일 시스템에 대한 인터페이스를 제공하며, 파일 시스템의 파일과 기타 객체에 접근하는 객체의 팩토리예요.

출처: Java API Reference

본문

public abstract class FileSystem extends Object implements Closeable

파일 시스템에 대한 인터페이스를 제공하며, 파일 시스템의 파일과 기타 객체에 접근하는 객체의 팩토리예요. FileSystems.getDefault 메서드를 호출해 얻는 기본 파일 시스템은 JVM이 접근할 수 있는 파일 시스템에 접근을 제공해요. FileSystems 클래스는 다른 유형의(사용자 정의) 파일 시스템에 접근을 제공하는 파일 시스템을 만드는 메서드를 정의해요.

파일 시스템은 여러 유형의 객체의 팩토리예요:

  • getPath 메서드는 시스템 종속적인 경로 문자열을 변환해 파일을 찾고 접근하는 데 사용할 수 있는 Path 객체를 반환해요.
  • getPathMatcher 메서드는 경로에 매칭 연산을 수행하는 PathMatcher를 만드는 데 사용돼요.
  • getFileStores 메서드는 기본 파일 저장소(file-stores)에 대한 이터레이터를 반환해요.
  • getUserPrincipalLookupService 메서드는 이름으로 사용자나 그룹을 조회하는 UserPrincipalLookupService를 반환해요.
  • newWatchService 메서드는 변화와 이벤트를 감시하는 데 사용할 수 있는 WatchService를 만들어요.

파일 시스템은 생성 시 열리고 close 메서드를 호출해 닫을 수 있어요. 닫힌 후 파일 시스템의 객체에 접근하려는 모든 시도는 ClosedFileSystemException을 발생시켜요. 기본 프로바이더가 만든 파일 시스템은 닫을 수 없어요. 파일 시스템은 여러 동시 스레드가 안전하게 사용할 수 있어요. Java 1.7부터 사용할 수 있어요.

생성자

protected FileSystem() — 이 클래스의 새 인스턴스를 초기화해요.

메서드 요약

수식자와 타입 메서드 설명
abstract void close() 이 파일 시스템을 닫아요.
abstract Iterable<FileStore> getFileStores() 기본 파일 저장소를 반복하는 객체를 반환해요.
abstract Path getPath(String first, String... more) 경로 문자열(또는 합쳐지면 경로 문자열을 이루는 문자열 시퀀스)을 Path로 변환해요.
abstract PathMatcher getPathMatcher(String syntaxAndPattern) 주어진 패턴을 해석해 Path 객체의 문자열 표현에 매칭 연산을 수행하는 PathMatcher를 반환해요.
abstract Iterable<Path> getRootDirectories() 루트 디렉터리의 경로를 반복하는 객체를 반환해요.
abstract String getSeparator() 이름 구분자를 문자열로 반환해요.
abstract UserPrincipalLookupService getUserPrincipalLookupService() 이 파일 시스템의 UserPrincipalLookupService를 반환해요 (선택 연산).
abstract boolean isOpen() 이 파일 시스템이 열려 있는지 여부를 알려줘요.
abstract boolean isReadOnly() 이 파일 시스템이 파일 저장소에 읽기 전용 접근만 허용하는지 여부를 알려줘요.
abstract WatchService newWatchService() WatchService를 구성해요 (선택 연산).
abstract FileSystemProvider provider() 이 파일 시스템을 만든 프로바이더를 반환해요.
abstract Set<String> supportedFileAttributeViews() FileSystem이 지원하는 파일 속성 뷰의 이름 집합을 반환해요.

close

public abstract void close() throws IOException

이 파일 시스템을 닫아요. 파일 시스템이 닫힌 후에는 이 클래스가 정의하는 메서드나 이 파일 시스템과 연관된 객체에 의한 모든 접근이 ClosedFileSystemException을 던져요. 파일 시스템을 닫으면 이 파일 시스템과 연관된 모든 열린 채널, 디렉터리 스트림, 워치 서비스 및 기타 닫을 수 있는 객체가 닫혀요. 기본 파일 시스템은 닫을 수 없어요.

getSeparator

public abstract String getSeparator() — 이름 구분자를 반환해요. 이름 구분자는 경로 문자열에서 이름을 구분하는 데 사용돼요. 기본 프로바이더의 경우 이 메서드는 File.separator와 같은 구분자를 반환해요.

getPath

public abstract Path getPath(String first, String... more)

경로 문자열(또는 합쳐지면 경로 문자열을 이루는 문자열 시퀀스)을 Path로 변환해요. more가 요소를 지정하지 않으면 first 매개변수의 값이 변환할 경로 문자열이에요. more가 하나 이상의 요소를 지정하면 각 비어 있지 않은 문자열은 이름 요소의 시퀀스로 간주되어 합쳐져 경로 문자열을 이뤄요. 이름 구분자가 /일 때 getPath("/foo","bar","gus")를 호출하면 경로 문자열 /foo/bar/gus가 만들어져요.

getFileStores

public abstract Iterable<FileStore> getFileStores() — 기본 파일 저장소를 반복하는 객체를 반환해요.

사용 예 — 모든 파일 저장소의 공간 사용량 출력:

for (FileStore store: FileSystems.getDefault().getFileStores()) {
    long total = store.getTotalSpace() / 1024;
    long used = (store.getTotalSpace() - store.getUnallocatedSpace()) / 1024;
    long avail = store.getUsableSpace() / 1024;
    System.out.format("%-20s %12d %12d %12d%n", store, total, used, avail);
}

supportedFileAttributeViews

public abstract Set<String> supportedFileAttributeViews() — 이 FileSystem이 지원하는 파일 속성 뷰의 이름 집합을 반환해요. BasicFileAttributeView는 반드시 지원되어야 하므로 집합에는 적어도 "basic" 요소가 포함돼요.

더 알아보기 (Learn more)

Java 공식 API