Java 파일 분리기, separatorChar, 경로 분리기, pathSeparatorChar

java.io.File 클래스에는 네 개의 정적 분리기 변수가 포함되어 있습니다. 이들에 대해 학습하고 언제 사용하는지에 대해 알아보겠습니다.

  1. File.separator: 플랫폼 종속적인 기본 이름 구분 문자열입니다. Windows의 경우 ‘ \ ‘이고 Unix의 경우 ‘ / ‘입니다.
  2. File.separatorChar: separator와 동일하지만 문자형입니다.
  3. File.pathSeparator: 경로 구분자에 대한 플랫폼 종속적인 변수입니다. 예를 들어 Unix 시스템에서는 ‘ : ‘로 구분된 경로 또는 Windows 시스템에서는 ‘ ; ‘로 구분된 PATH 또는 CLASSPATH 변수 목록입니다.
  4. 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에 대해 더 자세히 알아볼 것입니다.

Source:
https://www.digitalocean.com/community/tutorials/java-file-separator-separatorchar-pathseparator-pathseparatorchar