Di File
kelas ada dua string, separator
dan pathSeparator
.
Apa bedanya? Kapan saya harus menggunakan yang satu?
Di File
kelas ada dua string, separator
dan pathSeparator
.
Apa bedanya? Kapan saya harus menggunakan yang satu?
Jawaban:
Jika Anda maksud File.separator
dan File.pathSeparator
kemudian:
File.pathSeparator
digunakan untuk memisahkan jalur file individual dalam daftar jalur file. Pertimbangkan pada windows, variabel lingkungan PATH. Anda menggunakan a ;
untuk memisahkan jalur file sehingga Windows File.pathSeparator
akan ;
.
File.separator
adalah salah satu /
atau \
yang digunakan untuk membagi path ke file tertentu. Misalnya pada Windows itu \
atauC:\Documents\Test
File.separator
harus File.fileSeparator
mengenaiFile.pathSeparator
File
. Saya pikir bagian file tersirat. Tapi siapa yang tahu mengapa mereka melakukan banyak hal dengan Java.
Anda menggunakan pemisah ketika Anda sedang membangun jalur file. Jadi di unix pemisahnya /
. Jadi jika Anda ingin membangun jalur unix /var/temp
Anda akan melakukannya seperti ini:
String path = File.separator + "var"+ File.separator + "temp"
Anda menggunakan pathSeparator
ketika Anda berurusan dengan daftar file seperti di classpath. Misalnya, jika aplikasi Anda menggunakan daftar toples sebagai argumen, cara standar untuk memformat daftar itu di unix adalah:/path/to/jar1.jar:/path/to/jar2.jar:/path/to/jar3.jar
Jadi diberi daftar file yang akan Anda lakukan seperti ini:
String listOfFiles = ...
String[] filePaths = listOfFiles.split(File.pathSeparator);
/var/temp
itu maka tidak berguna untuk digunakan File.separator
karena Anda sudah memiliki kode yang bergantung pada platform. Mungkin juga hardcode jalannya.
java.io.File
kelas berisi empat variabel pemisah statis. Untuk pemahaman yang lebih baik, Mari kita pahami dengan bantuan beberapa kode
Perhatikan bahwa semua ini adalah variabel final dan ketergantungan sistem.
Berikut adalah program java untuk mencetak variabel pemisah ini. 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);
}
}
Output dari program di atas pada sistem Unix:
File.separator = /
File.separatorChar = /
File.pathSeparator = :
File.pathSeparatorChar = :
Output dari program pada sistem Windows:
File.separator = \
File.separatorChar = \
File.pathSeparator = ;
File.pathSeparatorChar = ;
Untuk membuat platform program kami independen, kami harus selalu menggunakan pemisah ini untuk membuat jalur file atau membaca variabel sistem apa pun seperti PATH, CLASSPATH.
Berikut ini cuplikan kode yang menunjukkan cara menggunakan pemisah dengan benar.
//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");
String
dan char
dikembalikan oleh metode yang disebutkan di atas tidak mengembalikan backslash diformat dengan benar (jika pada Windows).