Java: lucrul cu fișiere - scrierea, citirea, ștergerea

Java are multe instrumente pentru a lucra cu fișiere, deoarece acestea servesc ca un magazin de date în multe programe. În special, accesul la fișiere este adesea necesar în Java Android. Toate clasele de lucru cu fișiere sunt localizate în pachetul java.io, care stochează, de asemenea, clase pentru lucrul cu fluxurile de intrare și de ieșire. Strict vorbind, în Java, lucrul cu fișierele apare în principal prin fluxurile de octeți și caractere ale intrărilor-ieșirilor. O excepție în acest caz este clasa File. Vom începe cu asta.

Fișier Java de clasă - lucrul cu fișiere

Clasa de fișiere interacționează direct cu fișierele și cu sistemul de fișiere. O instanță a acestei clase este folosită în primul rând pentru a accesa proprietățile fișierului și ierarhiile mutante ale subdirectoarelor. Nu definește modul de extragere și salvare a datelor într-un fișier, dar cu această clasă puteți obține o mulțime de informații despre fișierul în sine: data, ora, drepturile de acces și calea spre director. De fapt, clasa File este o interpretare obiect a unui fișier sau a unui director din Java.

Pentru a crea o instanță a clasei de fișiere, utilizați unul dintre constructorii săi: Fișier (calea de șir la dosar, numele fișierului String).

Să luăm în considerare principalele metode din această clasă, care vă permit să obțineți informații despre un fișier sau un director:

  • getName () - returnează numele fișierului;
  • exists () - returnează o valoare booleană adevărată dacă fișierul există sau altfel false;
  • isFile () - determină dacă obiectul indică un fișier, returnând valoarea booleană corespunzătoare;
  • isDirectory () - returnează true dacă acesta este un dosar;
  • canWrite () - returnează true dacă fișierul este scris;
  • canRead () - returnează true dacă fișierul este lizibil;
  • setReadOnly () - face fișierul numai pentru citire;
  • length () - returnează dimensiunea fișierului în octeți;
  • renameTo (File new name) - redenumirea fișierului curent în funcție de argumentul trecut. Returnează adevărat dacă operația are succes;
  • delete () - șterge fișierul sau dosarul (dacă este gol) la care se referă obiectul apelant;
  • list () - preia o listă de nume de obiecte stocate în acest director ca o matrice de șiruri de caractere (aplicabilă numai directoarelor).

Astfel, folosind clasa File, Java funcționează cu fișiere și foldere.

Lucrul cu fișierele utilizând clasele FileInputStream și FileOutputStream

Anterior am menționat că, în Java, lucrul cu fișiere se efectuează în principal prin fluxuri de I / O. Fluxurile de fluxuri pentru lucrul cu fișiere sunt reprezentate ca clase FileInputStream și FileOutputStream. Aceste clase sunt moștenitorii celor de bază clase abstracte InputStream și OutputStream, deci metodele din aceste clase sunt disponibile pentru lucrul cu fișiere.

Luați în considerare mai întâi FileInputStream. Constructorii din această clasă sunt prezentați în figura de mai jos:

java lucrează cu fișiere

Primul constructor are ca argument argumentul căi către fișierul țintă ca șir, iar al doilea constructor ca reprezentare de obiect. Deși primul constructor este folosit mai des, în cel de-al doilea caz este posibil să se studieze proprietățile fișierelor disponibile în metodele de clasă File. Când se creează o instanță a clasei, FileInputStream deschide un flux de intrare pentru citirea fișierului.

Constructorii din clasa FileOutputStream sunt prezentați mai jos:

java android



Situația este similară cu o FileInputStream, dar poate lua, de asemenea o valoare „append“ logic, care, atunci când adevărat indică faptul că datele sunt scrise în fișierul țintă va fi anexată la existente, și dacă false - vor merge pe deplin suprascrie fișierul, și anume, datele vechi nu vor fi salvate.

Să examinăm un exemplu folosind aceste clase:

java care lucrează cu exemple de fișiere

Fluxul de intrare FileInputStream citește datele din file1.txt byte utilizând metoda read (). Fiecare octet citit este stocat într-o variabilă în formă intregă. Mai departe în corp în timp ce bucla această variabilă este trecută ca un argument pentru metoda de scriere a instanței FileOutputStream, care scrie biblioteca recepționată la file2.txt. La sfârșit, ambele fire sunt închise cu metoda apropiată.

Clase FileReader și FileWriter

Dacă știți că atunci când se ocupă de fișiere se va ocupa de text, atunci în loc de fluxuri de octeți este logic să folosiți cele simbolice. Aceste fluxuri sunt reprezentate de clasele FileReader și FileWriter din Java. Lucrul cu fișierele care utilizează aceste clase este cam la fel ca în cazul anterior. Sunt descendenți ai clasei Reader și Writer, care definesc metodele de bază pentru introducerea și ieșirea datelor.

Constructorii pentru clasele FileReader și FileWriter sunt afișați în figura de mai jos:

java lucrează cu fișiere și foldere

Sunt de acord, practic, nu există diferențe în semantică în comparație cu fluxurile de octeți. Linia de jos este că aceste clase sunt proiectate special pentru a lucra cu caractere Unicode, pe care fluxurile de octeți nu le pot face. Acesta este modul în care Java funcționează cu fișiere. Un exemplu de utilizare a acestor clase este prezentat mai jos:

java lucrează cu fișiere

După cum puteți vedea, nu există diferențe. Merită remarcat faptul că, deși firele sunt simbolice, metoda de citire returnează, iar metoda de scriere are o valoare întregă. Deși semnătura metodei de scriere presupune un argument int, doar cele mai mici 16 biți sunt scrise în flux, deoarece caracterele din Java sunt reprezentate exact de acest număr de biți.

concluzie

Deci, am dezasamblat clasele principale pentru a lucra cu fișiere în Java. Este de remarcat faptul că, dacă aveți de gând să dezvolte software-ul pentru Java Android, puteți folosi în siguranță acest instrument.

Distribuiți pe rețelele sociale:

înrudit
Cum se instalează Java pe Windows 7Cum se instalează Java pe Windows 7
Cum se actualizează Java pe sistemele de operare Linux și Windows?Cum se actualizează Java pe sistemele de operare Linux și Windows?
Primul program Java este Hello WorldPrimul program Java este Hello World
Cum și ce să deschideți fișierul * .pak? Descrierea formatului fișierelor * .pakCum și ce să deschideți fișierul * .pak? Descrierea formatului fișierelor * .pak
Ce sunt fișierele? Tipuri de fișiereCe sunt fișierele? Tipuri de fișiere
Structura fișierelor sistemelor de operare și clasificarea acestoraStructura fișierelor sistemelor de operare și clasificarea acestora
Cel mai bun manager de fișiere pentru ipadCel mai bun manager de fișiere pentru ipad
Cum și de ce trebuie să instalez Java pe calculatorul meu?Cum și de ce trebuie să instalez Java pe calculatorul meu?
PHP. Lucrul cu fișiere și directoarePHP. Lucrul cu fișiere și directoare
Fișierele executabile au o extensie a tipului? Cele mai frecventeFișierele executabile au o extensie a tipului? Cele mai frecvente
» » Java: lucrul cu fișiere - scrierea, citirea, ștergerea