2015-01-02 10 views

답변

22

java.io.File 클래스에는 4 개의 정적 구분 기호 변수가 있습니다. 더 나은 이해를 위해 일부 코드의 도움으로 이해합시다.

  1. 구분 기호 : 플랫폼에 따라 달라지는 기본 이름 구분 문자를 String으로 사용하십시오. 윈도우의 경우 '\'이고 유닉스의 경우 '/'입니다.
  2. separatorChar : 구분 기호와 같지만 char입니다.
  3. pathSeparator : 경로 구분 기호에 대한 플랫폼 종속 변수입니다. ';' 유닉스 시스템 및 Windows 시스템에서
  4. pathSeparatorChar입니다 : '': 예를 들어 PATH 또는으로 구분 된 경로의 CLASSPATH 변수 목록 PathSeparator와 동일하지만 문자를 모든 이들의 최종 것을

주입니다 변수 및 시스템에 따라 다릅니다.

다음은 이러한 구분 변수를 인쇄하는 Java 프로그램입니다. 유닉스 시스템에서 위의 프로그램의 FileSeparator.java

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); 
    } 

} 

출력 : Windows 시스템에서 프로그램의

File.separator =/
File.separatorChar =/
File.pathSeparator = : 
File.pathSeparatorChar = : 

출력 :

File.separator = \ 
File.separatorChar = \ 
File.pathSeparator = ; 
File.pathSeparatorChar = ; 

우리 프로그램 플랫폼 독립하기 위해, 우리는해야 항상이 분리자를 사용하여 파일 경로를 작성하거나 PATH, CLASSPATH와 같은 시스템 변수를 읽으십시오.

다음은 구분 기호를 올바르게 사용하는 방법을 보여주는 코드 스 니펫입니다.

//no platform independence, good for Unix systems 
File fileUnsafe = new File("tmp/abc.txt"); 
//platform independent and safe to use across Unix and Windows 
File fileSafe = new File("tmp"+File.separator+"abc.txt"); 
+1

pathSeparator가 잘못되었습니다 ... pathVariableSeparator 또는 classpathSeparator를 만들지 않으시겠습니까? –