Di Filekelas ada dua string, separatordan pathSeparator.
Apa bedanya? Kapan saya harus menggunakan yang satu?
Di Filekelas ada dua string, separatordan pathSeparator.
Apa bedanya? Kapan saya harus menggunakan yang satu?
Jawaban:
Jika Anda maksud File.separatordan File.pathSeparatorkemudian:
File.pathSeparatordigunakan 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.pathSeparatorakan ;.
File.separatoradalah salah satu /atau \yang digunakan untuk membagi path ke file tertentu. Misalnya pada Windows itu \atauC:\Documents\Test
File.separatorharus File.fileSeparatormengenaiFile.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/tempAnda akan melakukannya seperti ini:
String path = File.separator + "var"+ File.separator + "temp"
Anda menggunakan pathSeparatorketika 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/tempitu maka tidak berguna untuk digunakan File.separatorkarena Anda sudah memiliki kode yang bergantung pada platform. Mungkin juga hardcode jalannya.
java.io.Filekelas 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");
Stringdan chardikembalikan oleh metode yang disebutkan di atas tidak mengembalikan backslash diformat dengan benar (jika pada Windows).