java.io.File 클래스에는 네 개의 정적 분리기 변수가 포함되어 있습니다. 이들에 대해 학습하고 언제 사용하는지에 대해 알아보겠습니다.
- File.separator: 플랫폼 종속적인 기본 이름 구분 문자열입니다. Windows의 경우 ‘ \ ‘이고 Unix의 경우 ‘ / ‘입니다.
- File.separatorChar: separator와 동일하지만 문자형입니다.
- File.pathSeparator: 경로 구분자에 대한 플랫폼 종속적인 변수입니다. 예를 들어 Unix 시스템에서는 ‘ : ‘로 구분된 경로 또는 Windows 시스템에서는 ‘ ; ‘로 구분된 PATH 또는 CLASSPATH 변수 목록입니다.
- File.pathSeparatorChar: pathSeparator와 동일하지만 문자형입니다.
Java File 분리기
이 모든 변수는 final 변수이며 시스템에 종속적입니다. 다음은 이러한 분리기 변수를 출력하는 Java 프로그램입니다.
package com.journaldev.files;
import java.io.File;
public class FileSeparator {
public static void main(String[] args) {
System.out.println("File.separator = "+File.separator);
System.out.println("File.separatorChar = "+File.separatorChar);
System.out.println("File.pathSeparator = "+File.pathSeparator);
System.out.println("File.pathSeparatorChar = "+File.pathSeparatorChar);
}
}
Unix 시스템에서 위 프로그램의 출력:
File.separator = /
File.separatorChar = /
File.pathSeparator = :
File.pathSeparatorChar = :
Windows 시스템에서 프로그램의 출력:
File.separator = \
File.separatorChar = \
File.pathSeparator = ;
File.pathSeparatorChar = ;
프로그램을 플랫폼 독립적으로 만들기 위해 파일 경로를 만들거나 PATH, CLASSPATH와 같은 시스템 변수를 읽을 때 항상 이러한 분리기를 사용해야 합니다. 다음은 분리기를 올바르게 사용하는 코드 스니펫입니다.
//플랫폼 독립성 없음, Unix 시스템에 적합
File fileUnsafe = new File("tmp/abc.txt");
//플랫폼 독립적이며 Unix 및 Windows에서 안전하게 사용 가능
File fileSafe = new File("tmp"+File.separator+"abc.txt");
파일 구분자에 대한 모든 내용은 여기까지입니다. 향후 게시물에서는 java io에 대해 더 자세히 알아볼 것입니다.