Platforma bağımlı "dosya ayırıcıyı" platformdan bağımsız hale getirmenin üç özdeş yolu vardır:
Hangisini ne zaman kullanacağımıza nasıl karar veririz?
Aralarında fark bile var mı?
Platforma bağımlı "dosya ayırıcıyı" platformdan bağımsız hale getirmenin üç özdeş yolu vardır:
Hangisini ne zaman kullanacağımıza nasıl karar veririz?
Aralarında fark bile var mı?
Yanıtlar:
System.getProperties()
System.setProperty(String key, String value)
komut satırı parametrelerine çağrılarla veya komut satırı parametreleriyle geçersiz kılınabilir-Dfile.separator=/
File.separator
varsayılan dosya sistemi için ayırıcıyı alır.
FileSystems.getDefault()
size varsayılan dosya sistemini getirir.
FileSystem.getSeparator()
dosya sistemi için ayırıcı karakteri alır. Bir örnek yöntemi olarak, kodunuzun bir JVM'deki birden fazla dosya sisteminde çalışması için gerekli olması durumunda, varsayılandan farklı bir dosya sistemini kodunuza aktarmak için bunu kullanabileceğinizi unutmayın.
FileSystem
ele aldığınız her dosya sistemi için farklı bir örnek olurdu .
Kodunuz dosya sistemi sınırlarını geçmiyorsa, yani yalnızca bir dosya sistemiyle çalışıyorsanız, kullanın java.io.File.separator
.
Bu, açıklandığı gibi, FS'niz için varsayılan ayırıcıyı size verecektir. Bringer128'in açıkladığı gibi, System.getProperty("file.separator")
komut satırı seçenekleri ile geçersiz kılınabilir ve tip kadar güvenli değildir java.io.File.separator
.
Sonuncusu java.nio.file.FileSystems.getDefault().getSeparator();
Java 7'de tanıtıldı, bu nedenle kodunuzun eski Java sürümlerinde taşınabilir olmasını istiyorsanız şimdilik göz ardı edebilirsiniz.
Yani, bu seçeneklerin her biri neredeyse diğerleriyle aynıdır, ancak tam olarak değil. İhtiyaçlarınıza uygun birini seçin.
java.io
lehine önerilmemektedir java.nio
?
java.io
biraz daha düşük bir seviyedir java.nio
, ancak yine de çok ve yaygın olarak yararlıdır. Farklılıkları burada görebilirsiniz: blogs.oracle.com/slc/entry/javanio_vs_javaio . nio
yerini almaz io
, birden fazla şekilde uzatır (ve io
kaputun altında kullanır ).