Exemplul arată modul în care puteți folosi clasa Fișier pentru a obține diferite informații despre calea, dimensiunea, disponibilitatea pentru scriere, citirea și așa mai departe.
Un pic de teorie
Utilizând clasa File, puteți efectua operațiuni, cum ar fi definirea atributelor fișierelor, crearea sau ștergerea directoarelor, ștergerea fișierelor, obținerea unei liste a tuturor fișierelor din director și așa mai departe.
Clasa File oferă trei constructori:
Primul are un singur parametru - un link către șirul de cale spre fișier sau director. Cu ajutorul celui de-al doilea constructor, puteți specifica separat directorul dir și numele fișierului pentru care obiectul este creat în directorul curent. Și, în sfârșit, al treilea constructor vă permite să specificați calea completă la director și numele fișierului.
După ce creați un obiect din clasa Fișier, puteți defini cu ușurință atributele acestui obiect utilizând metodele corespunzătoare din clasa Fișier.
Utilizând metoda existentă, puteți verifica existența fișierului sau directorului pentru care a fost creat obiectul Fișier:
Metodele canRead și canWrite vă permit să verificați capacitatea de a citi dintr-un fișier și de a scrie într-un fișier, respectiv:
Este util să le aplicați înainte de a crea firele corespunzătoare, dacă doriți să evitați apariția unor excepții asociate unei încercări de a efectua acces neautorizat de tip. Dacă este permis accesul, aceste metode returnează adevărat, iar dacă sunt false, false.
Folosind metodele isDirectory și isFile, puteți verifica ce obiect creat al clasei File corespunde: unui director sau unui fișier:
Metoda getName returnează numele fișierului sau directorului pentru obiectul File specificat (numele este alocat din cale):
Metoda getAbsolutePath returnează o cale absolută către un fișier sau un director care poate fi dependent de mașină:
Metoda getPath vă permite să determinați calea independentă a unui fișier sau a unui director:
Dacă trebuie să definiți un director părinte pentru un obiect Fișier, puteți face acest lucru cu metoda getParent:
Lungimea fișierului în octeți poate fi determinată utilizând metoda lungimii:
Descrierea exemplului
Aplicația FileInfo standalone afișează informații despre fișierele primite de la clasa File în fereastra sa (vezi Figura 1).
Cum funcționează aplicația?
Dacă selectați Deschidere din meniul Fișier, pe ecran va apărea dialogul standard pentru selectarea unui fișier de intrare numit Selectare fișier.
Acesta va fi creat și afișat cu ajutorul metodei actionPerformed, care are controlul la selectarea barei de meniuri a aplicației noastre:
Dacă utilizatorul refuză să selecteze un fișier, metoda returnează controlul fără a întreprinde nicio acțiune:
Dacă fișierul a fost selectat, metoda actionPerformed creează un obiect al clasei File pentru el:
În acest caz, acesta trece calea la directorul care conține fișierul prin primul parametru la constructorul din clasa File, iar al doilea - la numele fișierului.
Toate acțiunile ulterioare se efectuează numai după verificarea existenței fișierului specificat, care se realizează prin metoda existenței:
În primul rând, vom adăuga la calea absolută a fișierului obținut prin getAbsolutePath, canonizat de calea către fișierul specificat de getCanonicalPath și mod independent de masina de reprezentare a obiectului (obținut metoda getPath):
În exemplul nostru (Figura 1), aceste căi coincid, dar această coincidență nu este întotdeauna obținută. În special, calea canonică poate depinde de platforma pe care rulează aplicația.
Apoi, programul nostru specifică numele fișierului (prin metoda getName), numele directorului în care este localizat acest fișier (prin metoda getParent) și lungimea fișierului în octeți (metoda lungime):
Apoi, verificăm dacă fișierul este permis să citească:
O verificare similară este efectuată pentru scriere: