1. Pathclasa
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 FileInputStreampentru a lucra cu fișiere. Cu toate acestea, Fileclasa 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 Pathclasa. Patheste clasa care a înlocuit File. Este mai sigur și mai eficient.
Pathclasă
Din punct de vedere tehnic, Pathnu este o clasă - este o interfață. Acest lucru se face pentru a permite scrierea unui descendent al Pathclasei 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, Pathinterfaț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 Pathobiect
Pentru a crea un Pathobiect (care va fi de fapt un obiect din WindowsPathclasa descendentă), trebuie să utilizați o declarație ca aceasta:
Path name = Path.of(path);
Unde nameeste numele unei Pathvariabile și patheste calea către fișier (sau director), inclusiv numele fișierului (sau director). Și ofeste o metodă statică a Pathclasei.
Metoda of()este folosită pentru a crea WindowsPathobiecte dacă programul rulează pe Windows. Dacă programul rulează pe Linux, atunci UnixPathobiectele sunt create. Nu puteți crea un Pathobiect 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 Pathobiect valid să existe. Poate vrei doar să creezi un fișier... Un Pathobiect 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 Pathtip
Interfața Pathare 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 PathdepreciatFile |
|
Transformă un Pathobiect într-un URIobiect |
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 Fileobiect depreciat care stochează aceeași cale de fișier ca și Pathobiectul.
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