Lucrul cu fișiere

În secțiunile anterioare am văzut clase pentru fluxuri de citire și scriere. Cu toate acestea, este de multe ori punerea în aplicare și operațiunile necesare, cum ar fi determinarea atributele unui fișier, crea sau șterge directoare, șterge fișiere, pentru a primi o listă cu toate fișierele dintr-un director, și așa mai departe. Pentru a efectua toate aceste operațiuni într-o aplicație Java utilizează o clasă numită fișier.

Crearea unui obiect de clasă de fișiere

Ai trei moduri de a crea un obiect de clasă de fișiere, provocând unul dintre cele trei designeri:

Primul dintre acesti designeri au un singur parametru - o referire la calea șir la fișierul sau directorul. Utilizați al doilea constructor, puteți specifica obiectul în directorul curent separat dir director și numele de fișier pentru care creați. Și, în sfârșit, al treilea constructor vă permite să specificați calea completă la numele directorului și fișierului.

În cazul în care primul dintre aceste designeri pentru a trece o referire la o valoare nulă, o excepție este aruncată NullPointerException.

Designeri utilizare este foarte simplu. Aici, de exemplu, modul de a crea un obiect de clasă fișier pentru fișierul c: \ autoexec.bat, și directorul d: \ winnt:

Definirea atributelor fișierelor și directoarelor

După ce ați creat un obiect al clasei de fișiere, este ușor de a defini atributele obiectului prin utilizarea metodelor adecvate ale clasei de fișiere.

Verificarea existenței unui fișier sau director

Cu ajutorul metodei există, poate doriți să verificați existența unui fișier sau catalog tipărit, pentru care a fost creat obiectul clasei de fișier:

Această metodă poate fi utilizată pentru a oferi o clasă FileOutputStream bazată pe flux, dacă doriți, pentru a evita suprascrierea accidental un fișier existent. În acest caz, înainte de a crea fluxul de clasa FileOutputStream de ieșire ar trebui să creeze clasa obiect de fișiere, specificând calea către constructor, și apoi verificați metoda de fișier suschestovanie există.

Verificați de citire și scriere capabilități

Metode canRead canWrite și vă permit să testați capacitatea de a citi dintr-un fișier și scrie la dosar, respectiv:

Acestea sunt utile pentru a aplica la stabilirea unor fluxuri corespunzătoare, dacă este necesar, pentru a evita apariția unor excepții legate de o încercare de a realiza tipul de acces neautorizat. În cazul în care accesul este acordat, aceasta metoda returneaza true, iar dacă negat - fals.

Determinarea tipului de obiect - un fișier sau director

Cu ajutorul metodelor isDirectory isFile și puteți verifica afară, care corespunde clasei a creat un obiect File - director sau fișier:

Obținerea numele unui fișier sau director

Metoda getName returnează numele fișierului sau dosarului pentru un fișier de clasă obiect specificat (numele iese din drum):

Obținerea calea completă către directorul

Metoda getAbsolutePath returnează calea absolută către fișierul sau directorul care poate fi dependentă de mașină:

Determinarea tipului de cale - absolută sau relativă

Folosind metoda isAbsolute puteți determina dacă clasa fișierului obiect fișier sau directorul specificat de calea absolută (completă) sau o cale relativă:

Definirea calea către fișier sau director

Metoda getPath vă permite să definiți un mod independent de masina a unui fișier sau director:

Determinarea directorul părinte

Dacă trebuie să specificați directorul părinte pentru obiectul de clasă de fișiere, puteți face acest lucru prin getParent:

Determinarea lungimii fișierului în octeți

Lungimea fișierului în octeți poate fi determinată folosind metoda de lungime:

Definirea unui fișier sau director ultima dată modificat

Pentru a determina momentul în care fișierul sau directorul modificat ultima dată, puteți apela metoda lastModified:

Rețineți, totuși, că această metodă returnează timpul în unități arbitrare de la lansarea sistemului, astfel încât este util doar pentru comparații relative.

Primiți o reprezentare text a unui obiect

Metoda toString returnează un șir de text care reprezintă obiectul de clasă fișier:

Obținerea de valoarea codului de distribuire

Metoda hashCode returnează obiectul fișier cu cod hash corespunzător:

Ștergerea fișierelor și directoarelor

Pentru a elimina fișierul nedorit sau director, trebuie să creați un obiect fișier corespunzător și apoi apel metoda șterge:

crearea de directoare

Utilizați metodele mkdirs mkdir și puteți crea dosare noi:

Prima dintre aceste tehnici creează o singură locație, al doilea - toate subdirectoarele care conduc la directorul nou creat (de exemplu, calea completă).

Redenumirea Fișiere și Directoare

Pentru a redenumi un fișier sau director, trebuie să creați două obiecte ale clasei File, dintre care una corespunde numelui vechi, iar al doilea - un nou mod. Apoi, pentru perovgo acestor obiecte nevoie de a apela metoda renameTo, arătând spre ea ca un parametru de referință la al doilea obiect:

Daca va avea succes, metoda returneaza true, în cazul în care există o eroare - fals. Se poate întâmpla, de asemenea, SecurityException excepție.

Comparând clasa de obiecte de fișiere

Pentru comparație, obiectele de clasă de fișiere, trebuie să utilizați metoda equals:

Rețineți că această metodă compară căile pentru fișiere și directoare, dar nu și fișiere sau directoare.

Obținerea lista de conținuturi de director

Cu ajutorul metodei de listă, puteți obține o listare director care corespunde cu cea a obiectului de clasă de fișiere. În clasa de fișiere, există două versiuni ale acestei metode - fără parametru și cu opțiunea:

Primul dintre acestea metodv returnează o matrice de siruri de caractere cu conținutul numelor de director, nu inclusiv directorul curent și directorul părinte. Al doilea vă permite să obțineți o listă cu toate obiectele care nu sunt stocate în directorul, dar numai cele care îndeplinesc condițiile specificate în clasa FilenameFilter filtru.

Un exemplu de aplicație care scanează conținutul directorului și este utilizat pentru acest filtru, veți găsi mai jos în secțiunea „Anexă dirlist“.