In Filesınıfında orada iki dizeleri, separatorve pathSeparator.
Fark ne? Birini diğeri ne zaman kullanmalıyım?
In Filesınıfında orada iki dizeleri, separatorve pathSeparator.
Fark ne? Birini diğeri ne zaman kullanmalıyım?
Yanıtlar:
Demek istiyorsan File.separatorve File.pathSeparatorsonra:
File.pathSeparatordosya yolları listesindeki tek tek dosya yollarını ayırmak için kullanılır. PATH ortam değişkeni pencerelerde düşünün. Bir kullanmak ;Windows üzerinde öylesine dosya yollarını ayırmak File.pathSeparatorolacaktır ;.
File.separator, ya /da \yolu belirli bir dosyaya bölmek için kullanılır. Örneğin Windows'ta \veyaC:\Documents\Test
File.separatoredilmelidir File.fileSeparatoriçin ilgiliFile.pathSeparator
File. Bence dosya kısmı ima ediliyor. Ama Java ile yaptıklarının çoğunu neden yaptığını kim bilebilir.
Bir dosya yolu oluştururken ayırıcı kullanırsınız. Yani unix'de ayırıcı /. Unix yolunu oluşturmak /var/tempistiyorsanız, bunu şu şekilde yaparsınız:
String path = File.separator + "var"+ File.separator + "temp"
pathSeparatorSınıf yolundaki gibi bir dosya listesi ile uğraşırken kullanın . Örneğin, uygulamanız kavanoz listesini bağımsız değişken olarak aldıysa, bu listeyi unix'te biçimlendirmenin standart yolu şöyledir:/path/to/jar1.jar:/path/to/jar2.jar:/path/to/jar3.jar
Dosyaların bir listesi verildiğinde böyle bir şey yapardınız:
String listOfFiles = ...
String[] filePaths = listOfFiles.split(File.pathSeparator);
/var/tempiçin kullanmak işe yaramaz File.separator. Yolu da kodlayabilir.
java.io.Filesınıfı dört statik ayırıcı değişken içerir. Daha iyi anlamak için, bazı kodların yardımıyla anlayalım
Tüm bunların nihai değişkenler ve sisteme bağlı olduğunu unutmayın.
İşte bu ayırıcı değişkenleri yazdırmak için java programı. 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);
}
}
Yukarıdaki programın Unix sisteminde çıktısı:
File.separator = /
File.separatorChar = /
File.pathSeparator = :
File.pathSeparatorChar = :
Programın Windows sisteminde çıktısı:
File.separator = \
File.separatorChar = \
File.pathSeparator = ;
File.pathSeparatorChar = ;
Program platformumuzu bağımsız hale getirmek için her zaman dosya ayırıcı oluşturmak veya PATH, CLASSPATH gibi sistem değişkenlerini okumak için bu ayırıcıları kullanmalıyız.
Ayırıcıların doğru şekilde nasıl kullanılacağını gösteren kod snippet'i.
//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");
StringVe charyukarıda belirtilen yöntemlerle döndü (Windows üzerinde ise) düzgün biçimlendirilmiş ters eğik çizgi dönmek yoktur.