1. Path
sınıf
Diskteki dosyalarla bir şeyler yapan bir program yazmak istiyorsanız, bu oldukça kolaydır. Java, hem dosyalarla hem de içerikleriyle çalışmanıza yardımcı olan birçok sınıfa sahiptir.
Java'nın ilk sürümleri, dosyalarla çalışmak için File
ve benzeri sınıfları kullandı. FileInputStream
Ancak, File
sınıf artık kullanımdan kaldırılmıştır ve kullanılması önerilmez. Tabii ki, kodda, yöntem parametrelerinde veya sınıf kurucularında yine de karşılaşabilirsiniz.
En başından, sınıfı kullanarak dosyalarla nasıl çalışılacağını öğrenmeye başlayacağız Path
. Path
yerini alan sınıftır File
. Daha güvenli ve daha verimlidir.
Path
sınıf
Teknik olarak Path
bir sınıf değil, bir arayüz. Bu, her işletim sistemi (ve dosya sistemi) için sınıfın soyundan birinin yazılmasına izin vermek için yapılır Path
.
Windows'un dosya yollarını yazmak için bir standardı vardır ve Linux'un başka bir standardı vardır. Elbette dünyada başka birçok işletim sistemi var ve her birinin kendi standardı var.
Bu nedenle arabirim, Path
dosyalarla çalışan yöntemlerde her yerde kullanılır, ancak gerçekte çalışma onun soyundan gelen sınıflar aracılığıyla gerçekleşir: WindowsPath
, UnixPath
, ...
Path
nesne oluşturma
Bir nesne yaratmak için Path
(aslında soyundan gelen sınıfın bir nesnesi olacaktır WindowsPath
), şöyle bir ifade kullanmanız gerekir:
Path name = Path.of(path);
Nerede name
bir değişkenin adı Path
ve path
dosyanın (veya dizinin) adı da dahil olmak üzere dosyanın (veya dizinin) yoludur. Ve of
sınıfın statik bir yöntemidir Path
.
Yöntem , program Windows'ta çalışıyorsa nesneler of()
oluşturmak için kullanılır . WindowsPath
Program Linux üzerinde çalışıyorsa, UnixPath
nesneler oluşturulur. gibi bir kod kullanarak nesne oluşturamazsınız .Path
new Path()
Örnekler:
kod | Not |
---|---|
|
dosyanın yolu |
|
dizine giden yol |
Path
Geçerli bir nesnenin var olması için dosyanın (veya dizinin) var olması gerekmez . Belki de sadece bir dosya oluşturmak istiyorsunuz... Bir Path
nesne güçlendirilmiş gibidir String
: diskteki belirli bir dosyaya bağlı değildir — yalnızca diskte belirli bir yolu depolar. Bu kadar.
Path
2. Türün Yöntemleri
Arayüz Path
oldukça ilginç birkaç yönteme sahiptir. En ilginç olanları aşağıdaki tabloda sunulmaktadır.
Yöntem | Tanım |
---|---|
|
Üst dizini döndürür |
|
Dizin olmadan dosya adını döndürür |
|
Bir yoldan kök dizini döndürür |
|
Geçerli yolun mutlak olup olmadığını kontrol eder |
|
Yolu mutlak değere dönüştürür |
|
Bir dizin adındaki joker karakterleri kaldırır. |
|
Mutlak ve göreli yollardan yeni bir mutlak yol oluşturur. |
|
İki mutlak yoldan göreli bir yol alır. |
|
Geçerli yolun belirli bir yolla başlayıp başlamadığını kontrol eder |
|
Geçerli yolun belirli bir yolla bitip bitmediğini kontrol eder |
|
/ Sınırlayıcı olarak kullanarak yolu parçalara ayırır . Parça sayısını döndürür. |
|
/ Sınırlayıcı olarak kullanarak yolu parçalara ayırır . Bir parçayı dizinine göre döndürür. |
|
/ Sınırlayıcı olarak kullanarak yolu parçalara ayırır . Verilen aralığa karşılık gelen alt yolu döndürür. |
|
Bir nesneyi Path kullanımdan kaldırılmış bir nesneye dönüştürürFile |
|
Path Bir nesneyi bir URI nesneye dönüştürür |
Aşağıda mevcut yöntemlerin kısa bir açıklaması bulunmaktadır.
3. Bir yolu parçalara ayırma
Yöntem getParent()
, geçerli yol için üst dizine işaret eden yolu döndürür. Bu yolun bir dizin mi yoksa bir dosya mı olduğuna bakılmaksızın:
kod | Değer |
---|---|
|
|
|
|
|
|
Yöntem getFileName()
, son sınırlayıcıdan sonra gelen tek bir dosya (veya dizin) adı döndürür:
kod | Değer |
---|---|
|
|
|
|
|
|
Yöntem getRoot()
, kök dizinin yolunu döndürür:
kod | Değer |
---|---|
|
|
4. Mutlak ve göreceli yollar
İki tür yol vardır: mutlak ve göreli. Mutlak bir yol, kök dizinden başlar. Windows için bu klasör olabilir c:\
; Linux için — /
dizin
Göreceli bir yol, bazı dizinlere göre anlamlıdır. Yani yolun sonu gibi ama başı yok. Göreceli bir yolu mutlak bir yola dönüştürebilirsiniz ve bunun tersini de yapabilirsiniz.
boolean isAbsolute()
yöntem
Yöntem, geçerli yolun mutlak olup olmadığını kontrol eder.
kod | Değer |
---|---|
|
|
|
|
Path toAbsolutePath()
yöntem
Yolu mutlak değere dönüştürür. Gerekirse, geçerli çalışma dizinini buna ekler:
kod | Değer |
---|---|
|
|
|
|
Path normalize()
yöntem
Yolda, bir dizin adı yerine ".." yazabilirsiniz, bu da bir dizine geri gitmek anlamına gelir . Normalleşme bunları ortadan kaldırır. Örnekler:
kod | Değer |
---|---|
|
|
|
|
Path relativize(Path other)
yöntem
Yöntem relativize()
, "yollar arasındaki farkları" oluşturmanıza izin verir: bir yol diğerine göre
kod | Değer |
---|---|
|
|
|
|
|
IllegalArgumentException: iki yolun farklı bir "kökü" vardır (farklı diskler) |
Path resolve(Path other)
yöntem
Yöntem resolve()
, bunun tersini yapar relativize()
: mutlak ve göreli bir yoldan yeni bir mutlak yol oluşturur.
kod | Değer |
---|---|
|
|
|
|
toFile()
yöntem
Yöntem, File
nesneyle aynı dosya yolunu depolayan, kullanımdan kaldırılmış bir nesne döndürür Path
.
toURI()
yöntem
Yöntem, yolu standart bir URI'ye dönüştürür ve dosyanın yolunu içeren bir nesne döndürür:
dosyanın yolu | dosyanın URI'si |
---|---|
|
|
GO TO FULL VERSION