1. Pathkelas
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 Filedan FileInputStreamuntuk bekerja dengan file. Namun, Filekelas 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 Pathkelas. Pathadalah kelas yang diganti File. Lebih aman dan lebih efisien.
Pathkelas
Secara teknis, Pathini bukan kelas — ini adalah antarmuka. Ini dilakukan untuk memungkinkan penulisan turunan dari Pathkelas 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 Pathantarmuka digunakan di mana-mana dalam metode yang bekerja dengan file, meskipun pada kenyataannya pekerjaan terjadi melalui kelas turunannya: WindowsPath, UnixPath, ...
Membuat Pathobjek
Untuk membuat Pathobjek (yang sebenarnya akan menjadi objek dari WindowsPathkelas turunan), Anda perlu menggunakan pernyataan seperti ini:
Path name = Path.of(path);
Di mana namenama variabel Path, dan pathpath ke file (atau direktori) termasuk nama file (atau direktori). Dan ofmerupakan metode statis kelas Path.
Metode ini of()digunakan untuk membuat WindowsPathobjek jika program berjalan di Windows. Jika program berjalan di Linux, maka UnixPathobjek dibuat. Anda tidak dapat membuat Pathobjek menggunakan kode seperti .new Path()
Contoh:
| Kode | Catatan |
|---|---|
|
Jalur ke file |
|
Jalur ke direktori |
File (atau direktori) tidak perlu ada untuk Pathobjek yang valid ada. Mungkin Anda hanya ingin membuat file... Sebuah Pathobjek seperti sup String: tidak terikat ke file tertentu di disk — objek hanya menyimpan jalur tertentu di disk. Itu dia.
2. Metode Pathjenis
Antarmuka Pathmemiliki 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 Pathobjek menjadi Fileobjek yang tidak digunakan lagi |
|
Mengubah Pathobjek menjadi URIobjek |
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 Fileobjek usang yang menyimpan jalur file yang sama dengan Pathobjek 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