[java] File.separator 대 FileSystem.getSeparator () 대 System.getProperty (“file.separator”)?

플랫폼 독립적 인 “파일 분리기”를 플랫폼 독립적으로 얻는 세 가지 동일한 방법 이있는 것 같습니다 .

언제 사용할 것인지 어떻게 결정합니까?

그들 사이에도 차이가 있습니까?



답변

System.getProperties()System.setProperty(String key, String value)명령 줄 매개 변수를 호출 하거나 명령 줄 매개 변수를 사용 하여 재정의 할 수 있습니다.-Dfile.separator=/

File.separator 기본 파일 시스템의 구분자를 가져옵니다.

FileSystems.getDefault() 기본 파일 시스템을 얻습니다.

FileSystem.getSeparator()파일 시스템의 구분 문자를 가져옵니다. 하나의 JVM에서 여러 파일 시스템에서 코드를 조작해야하는 경우 인스턴스 메소드로이를 사용하여 기본값 이외의 다른 파일 시스템을 코드로 전달할 수 있습니다.


답변

코드가 파일 시스템 경계를 넘지 않는 경우, 즉 하나의 파일 시스템으로 작업하는 경우을 사용하십시오 java.io.File.separator.

설명에 따라 FS의 기본 구분 기호가 표시됩니다. Bringer128이 설명했듯이 System.getProperty("file.separator")명령 줄 옵션을 통해 재정의 할 수 있으며 유형만큼 안전하지 않습니다 java.io.File.separator.

마지막 java.nio.file.FileSystems.getDefault().getSeparator();은 Java 7에서 도입되었으므로 코드를 이전 Java 버전에서 이식 가능하게하려면 지금은 무시해도됩니다.

따라서 이러한 옵션은 모두 다른 옵션과 거의 동일하지만 완전히 다릅니다. 필요에 맞는 것을 선택하십시오.


답변