1. Path
clasa
Dacă doriți să scrieți un program care face ceva cu fișierele de pe disc, este destul de ușor. Java are o mulțime de clase care vă ajută să lucrați atât cu fișierele în sine, cât și cu conținutul acestora.
Versiunile timpurii de Java foloseau clase precum File
și FileInputStream
pentru a lucra cu fișiere. Cu toate acestea, File
clasa este acum depreciată și nu este recomandată pentru utilizare. Desigur, îl puteți întâlni în cod, parametrii metodei sau constructorii de clasă.
Încă de la început, vom începe să învățăm cum să lucrăm cu fișiere folosind Path
clasa. Path
este clasa care a înlocuit File
. Este mai sigur și mai eficient.
Path
clasă
Din punct de vedere tehnic, Path
nu este o clasă - este o interfață. Acest lucru se face pentru a permite scrierea unui descendent al Path
clasei pentru fiecare sistem de operare (și sistem de fișiere).
Windows are un standard pentru scrierea căilor de fișiere, iar Linux are altul. Desigur, există multe alte sisteme de operare în lume și fiecare are propriul său standard.
De aceea, Path
interfața este folosită peste tot în metodele care lucrează cu fișiere, deși, în realitate, munca se întâmplă prin clasele sale descendente: WindowsPath
, UnixPath
, ...
Crearea unui Path
obiect
Pentru a crea un Path
obiect (care va fi de fapt un obiect din WindowsPath
clasa descendentă), trebuie să utilizați o declarație ca aceasta:
Path name = Path.of(path);
Unde name
este numele unei Path
variabile și path
este calea către fișier (sau director), inclusiv numele fișierului (sau director). Și of
este o metodă statică a Path
clasei.
Metoda of()
este folosită pentru a crea WindowsPath
obiecte dacă programul rulează pe Windows. Dacă programul rulează pe Linux, atunci UnixPath
obiectele sunt create. Nu puteți crea un Path
obiect folosind cod precum .new Path()
Exemple:
Cod | Notă |
---|---|
|
Calea către fișier |
|
Calea către director |
Fișierul (sau directorul) nu trebuie să existe pentru ca un Path
obiect valid să existe. Poate vrei doar să creezi un fișier... Un Path
obiect este ca un suped-up String
: nu este legat de un anumit fișier de pe disc - doar stochează o anumită cale pe disc. Asta este.
2. Metode de Path
tip
Interfața Path
are destul de multe metode interesante. Cele mai interesante sunt prezentate în tabelul de mai jos.
Metodă | Descriere |
---|---|
|
Returnează directorul părinte |
|
Returnează numele fișierului fără director |
|
Returnează directorul rădăcină dintr-o cale |
|
Verifică dacă calea curentă este absolută |
|
Transformă calea în absolut |
|
Elimină caracterele metalice dintr-un nume de director. |
|
Construiește o nouă cale absolută din căi absolute și relative. |
|
Obține o cale relativă de la două căi absolute. |
|
Verifică dacă calea curentă începe cu o cale dată |
|
Verifică dacă calea curentă se termină cu o cale dată |
|
Împarte calea în părți folosind / ca delimitator. Returnează numărul de piese. |
|
Împarte calea în părți folosind / ca delimitator. Returnează o parte după indexul său. |
|
Împarte calea în părți folosind / ca delimitator. Returnează calea secundară care corespunde intervalului dat. |
|
Convertește un obiect într-un obiect Path depreciatFile |
|
Transformă un Path obiect într-un URI obiect |
Mai jos este o scurtă descriere a metodelor existente.
3. Împărțirea unei căi în părți
Metoda getParent()
returnează calea care indică către directorul părinte pentru calea curentă. Indiferent dacă această cale este un director sau un fișier:
Cod | Valoare |
---|---|
|
|
|
|
|
|
Metoda getFileName()
returnează un singur nume de fișier (sau director) - orice vine după ultimul delimitator:
Cod | Valoare |
---|---|
|
|
|
|
|
|
Metoda getRoot()
returnează calea către directorul rădăcină:
Cod | Valoare |
---|---|
|
|
4. Căi absolute și relative
Există două tipuri de căi: absolute și relative. O cale absolută începe din directorul rădăcină. Pentru Windows, acesta ar putea fi c:\
folderul; pentru Linux — /
directorul
O cale relativă este semnificativă în raport cu un anumit director. Adică e ca un capăt de drum, dar fără început. Puteți transforma o cale relativă într-o cale absolută și invers
boolean isAbsolute()
metodă
Metoda verifică dacă calea curentă este absolută
Cod | Valoare |
---|---|
|
|
|
|
Path toAbsolutePath()
metodă
Transformă calea în absolut. Dacă este necesar, adaugă directorul de lucru curent la acesta:
Cod | Valoare |
---|---|
|
|
|
|
Path normalize()
metodă
În cale, în loc de numele unui director, puteți scrie „..”, ceea ce înseamnă să reveniți cu un director . Normalizarea elimină aceste lucruri. Exemple:
Cod | Valoare |
---|---|
|
|
|
|
Path relativize(Path other)
metodă
Metoda relativize()
vă permite să construiți „diferențele dintre căi”: o cale relativ la alta
Cod | Valoare |
---|---|
|
|
|
|
|
IllegalArgumentException: cele două căi au o „rădăcină” diferită (discuri diferite) |
Path resolve(Path other)
metodă
Metoda resolve()
face opusul relativize()
: construiește o nouă cale absolută dintr-o cale absolută și una relativă.
Cod | Valoare |
---|---|
|
|
|
|
toFile()
metodă
Metoda returnează un File
obiect depreciat care stochează aceeași cale de fișier ca și Path
obiectul.
toURI()
metodă
Metoda convertește calea într-un URI standard și returnează un obiect care conține calea către fișier:
Calea către fișier | URI la fișier |
---|---|
|
|
GO TO FULL VERSION