1. Path
kelas
Jika Anda ingin menulis sebuah program yang melakukan sesuatu dengan file di disk, itu cukup mudah. Java memiliki banyak kelas yang membantu Anda bekerja dengan file itu sendiri dan kontennya.
Versi awal Java menggunakan kelas seperti File
dan FileInputStream
untuk bekerja dengan file. Namun, File
kelas tersebut sekarang tidak digunakan lagi dan tidak direkomendasikan untuk digunakan. Tentu saja, Anda mungkin masih menemukannya dalam kode, parameter metode, atau konstruktor kelas.
Sejak awal, kita akan mulai mempelajari cara bekerja dengan file menggunakan Path
kelas. Path
adalah kelas yang diganti File
. Lebih aman dan lebih efisien.
Path
kelas
Secara teknis, Path
ini bukan kelas — ini adalah antarmuka. Ini dilakukan untuk memungkinkan penulisan turunan dari Path
kelas untuk setiap sistem operasi (dan sistem file).
Windows memiliki satu standar untuk menulis jalur file, dan Linux memiliki standar lain. Tentu saja, ada banyak sistem operasi lain di dunia, dan masing-masing memiliki standarnya sendiri.
Itu sebabnya Path
antarmuka digunakan di mana-mana dalam metode yang bekerja dengan file, meskipun pada kenyataannya pekerjaan terjadi melalui kelas turunannya: WindowsPath
, UnixPath
, ...
Membuat Path
objek
Untuk membuat Path
objek (yang sebenarnya akan menjadi objek dari WindowsPath
kelas turunan), Anda perlu menggunakan pernyataan seperti ini:
Path name = Path.of(path);
Di mana name
nama variabel Path
, dan path
path ke file (atau direktori) termasuk nama file (atau direktori). Dan of
merupakan metode statis kelas Path
.
Metode ini of()
digunakan untuk membuat WindowsPath
objek jika program berjalan di Windows. Jika program berjalan di Linux, maka UnixPath
objek dibuat. Anda tidak dapat membuat Path
objek menggunakan kode seperti .new Path()
Contoh:
Kode | Catatan |
---|---|
|
Jalur ke file |
|
Jalur ke direktori |
File (atau direktori) tidak perlu ada untuk Path
objek yang valid ada. Mungkin Anda hanya ingin membuat file... Sebuah Path
objek seperti sup String
: tidak terikat ke file tertentu di disk — objek hanya menyimpan jalur tertentu di disk. Itu dia.
2. Metode Path
jenis
Antarmuka Path
memiliki beberapa metode menarik. Yang paling menarik disajikan pada tabel di bawah ini.
metode | Keterangan |
---|---|
|
Mengembalikan direktori induk |
|
Mengembalikan nama file tanpa direktori |
|
Mengembalikan direktori root dari jalur |
|
Memeriksa apakah jalur saat ini mutlak |
|
Mengubah jalur menjadi absolut |
|
Menghapus wildcard dalam nama direktori. |
|
Membangun jalur absolut baru dari jalur absolut dan relatif. |
|
Mendapat jalur relatif dari dua jalur absolut. |
|
Memeriksa apakah jalur saat ini dimulai dengan jalur yang diberikan |
|
Memeriksa apakah jalur saat ini berakhir dengan jalur yang diberikan |
|
Membagi jalur menjadi beberapa bagian menggunakan / pembatas. Mengembalikan jumlah bagian. |
|
Membagi jalur menjadi beberapa bagian menggunakan / pembatas. Mengembalikan bagian berdasarkan indeksnya. |
|
Membagi jalur menjadi beberapa bagian menggunakan / pembatas. Mengembalikan subjalur yang sesuai dengan interval yang diberikan. |
|
Mengonversi Path objek menjadi File objek yang tidak digunakan lagi |
|
Mengubah Path objek menjadi URI objek |
Di bawah ini adalah deskripsi singkat dari metode yang ada.
3. Membagi jalur menjadi beberapa bagian
Metode getParent()
mengembalikan jalur yang menunjuk ke direktori induk untuk jalur saat ini. Terlepas dari apakah jalur ini adalah direktori atau file:
Kode | Nilai |
---|---|
|
|
|
|
|
|
Metode ini getFileName()
mengembalikan satu nama file (atau direktori) — apa pun yang muncul setelah pembatas terakhir:
Kode | Nilai |
---|---|
|
|
|
|
|
|
Metode getRoot()
mengembalikan jalur ke direktori root:
Kode | Nilai |
---|---|
|
|
4. Jalur absolut dan relatif
Ada dua jenis jalur: absolut dan relatif. Jalur absolut dimulai dari direktori root. Untuk Windows, ini mungkin foldernya c:\
; untuk Linux — /
direktori
Jalur relatif bermakna relatif terhadap beberapa direktori. Artinya, ini seperti ujung jalan, tetapi tanpa awal. Anda dapat mengubah jalur relatif menjadi jalur absolut dan sebaliknya
boolean isAbsolute()
metode
Metode ini memeriksa apakah jalur saat ini mutlak
Kode | Nilai |
---|---|
|
|
|
|
Path toAbsolutePath()
metode
Mengubah jalur menjadi absolut. Jika perlu, tambahkan direktori kerja saat ini ke dalamnya:
Kode | Nilai |
---|---|
|
|
|
|
Path normalize()
metode
Di jalur, alih-alih nama direktori, Anda dapat menulis "..", yang berarti mundur satu direktori . Normalisasi menghilangkan hal-hal ini. Contoh:
Kode | Nilai |
---|---|
|
|
|
|
Path relativize(Path other)
metode
Metode ini relativize()
memungkinkan Anda membuat "perbedaan antar jalur": satu jalur relatif terhadap jalur lainnya
Kode | Nilai |
---|---|
|
|
|
|
|
IllegalArgumentException: kedua jalur memiliki "root" yang berbeda (disk berbeda) |
Path resolve(Path other)
metode
Metode resolve()
melakukan kebalikan dari relativize()
: ia membangun jalur absolut baru dari jalur absolut dan relatif.
Kode | Nilai |
---|---|
|
|
|
|
toFile()
metode
Metode ini mengembalikan File
objek usang yang menyimpan jalur file yang sama dengan Path
objek tersebut.
toURI()
metode
Metode mengonversi jalur ke URI standar , dan mengembalikan objek yang berisi jalur ke file:
Jalur ke file | URI ke file |
---|---|
|
|
GO TO FULL VERSION