1. Filesclasa

Pentru a lucra cu fișiere, există o clasă de utilitare slick — java.nio.file.Files. Are metode pentru fiecare ocazie. Toate metodele acestei clase sunt statice și funcționează pe obiectul Path. Există o mulțime de metode, așa că le vom lua în considerare doar pe cele mai importante:
| Metodă | Descriere |
|---|---|
|
Creează un fișier nou a cărui cale estepath |
|
Creează un director nou |
|
Creează mai multe directoare |
|
Creează un fișier temporar |
|
Creează un director temporar |
|
Șterge un fișier sau un director dacă este gol |
|
Copiază un fișier |
|
Mută un fișier |
|
Verifică dacă calea este un director și nu un fișier |
|
Verifică dacă calea este un fișier și nu un director |
|
Verifică dacă un obiect există pe calea dată |
|
Returnează dimensiunea fișierului |
|
Returnează întregul conținut al unui fișier ca o matrice de octeți |
|
Returnează întregul conținut al unui fișier ca șir |
|
Returnează întregul conținut al unui fișier ca o listă de șiruri |
|
Scrie o matrice de octeți într-un fișier |
|
Scrie un șir într-un fișier |
|
Returnează o colecție de fișiere (și subdirectoare) din directorul dat |
2. Crearea de fișiere și directoare
Fișierele și directoarele sunt foarte ușor de creat. Să ne convingem cu câteva exemple:
| Cod | Notă |
|---|---|
|
Creează un fișier |
|
Creează un director |
|
Creează un director și toate subdirectoarele necesare dacă acestea nu există. |
3. Copierea, mutarea și ștergerea
Copierea, mutarea și ștergerea fișierelor este la fel de ușoară. Acest lucru este valabil și pentru directoare, dar acestea trebuie să fie goale.
| Cod | Notă |
|---|---|
|
Copiază un fișier |
|
Mută și redenumește un fișier |
|
Șterge un fișier |
4. Verificarea tipului și existenței unui fișier
Când aveți o cale furnizată de altcineva, doriți să știți dacă este un fișier sau un director. Și în general, un astfel de fișier/director există sau nu?
Există și metode speciale pentru acest lucru. De asemenea, puteți afla cu ușurință lungimea unui fișier:
| Cod | Notă |
|---|---|
|
|
|
|
|
|
|
|
5. Lucrul cu conținutul fișierului
În cele din urmă, există o serie întreagă de metode care facilitează citirea sau scrierea conținutului unui fișier. Exemplu:
| Cod | Descriere |
|---|---|
|
Citiți conținutul fișierului ca o listă de șiruri de caractere. Afișați șirurile |
6. Obținerea conținutului unui director
Cea mai interesantă metodă rămâne încă. Este folosit pentru a obține fișiere și subdirectoare într-un anumit director.
Vorbim despre newDirectoryStream()metodă, care returnează un DirectoryStream<Path>obiect special. Are un iterator(!) pe care îl puteți folosi pentru a obține toate fișierele și subdirectoarele unui director dat.
Acest lucru este mai ușor decât pare.
| Cod | Descriere |
|---|---|
|
Obțineți un obiect cu o listă de fișiere Buclă peste lista de fișiere |
Obiectul DirectoryStream<Path>are două proprietăți. În primul rând, are un iterator care returnează căile fișierelor și putem folosi acest obiect în interiorul unei for-eachbucle.
Și în al doilea rând, acest obiect este un flux de date, deci trebuie să fie închis în mod explicit folosind close()metoda sau să fie utilizat în interiorul unui try-with-resourcesbloc.
7. Files.newInputStreammetoda
Începând cu Java 5, clasele FileInputStreamși FileOutputStreamau fost depreciate. Unul dintre dezavantajele lor a fost că atunci când sunt create obiecte din aceste clase, fișierele sunt create imediat pe disc. Și toate excepțiile legate de crearea fișierelor ar putea fi eliminate.
Mai târziu, aceasta a fost recunoscută ca nu cea mai bună decizie. În consecință, se recomandă utilizarea metodelor java.nio.Filesclasei de utilitate pentru a crea obiecte fișier.
Iată o comparație între vechea abordare și noua abordare pentru crearea fișierelor:
| Inainte de |
|---|
|
| După |
|
Și există un înlocuitor similar pentru FileOutputStream:
| Inainte de |
|---|
|
| După |
|
GO TO FULL VERSION