Gestionarea fișierelor în Java: Cum să lucrați cu fișierele Java?

Publicat: 2021-03-12

Java este un limbaj de programare foarte popular. Pe lângă arhitectura și componentele robuste , unul dintre cele mai importante motive din spatele succesului și popularității sale este suportul pentru numeroase funcționalități. Gestionarea fișierelor în Java este una dintre aceste funcționalități care ne permite să lucrăm cu fișiere. Astăzi, vom afla despre diverse operațiuni pe care le putem efectua cu conceptele de fișiere în Java .

Cuprins

Ce este Java File Handling?

După cum am menționat, gestionarea fișierelor în Java vă permite să lucrați cu fișiere. Este o funcționalitate Java definită în clasa File a pachetului Java.io. Pachetul io din Java.io înseamnă Input și Output. Veți găsi toate clasele de care veți avea nevoie vreodată pentru a efectua orice operațiuni de intrare sau de ieșire în pachetul Java.io.

Puteți accesa și utiliza această clasă de fișiere pentru a efectua diverse funcții prin crearea unui obiect și furnizarea numelui fișierului sau directorului. Sintaxa pentru a crea un obiect și a utiliza clasa File este:

import java.io.File;

Fișier obj = fișier nou(„nume.txt”);

După cum se vede în sintaxa de mai sus, mai întâi trebuie să importați clasa File din pachetul Java.io. Odată importat, tot ce trebuie să faceți este să creați un obiect și să specificați numele fișierului sau directorului cu care doriți să lucrați. Pentru a menționa numele directorului într-un sistem de operare Windows, trebuie să utilizați „\\”. De exemplu, trebuie să utilizați „ C:\\Users\\MyFolder\\MySubFolder ” și nu „ C:\Users|MyFolder|MySubFolder ”. Cu toate acestea, pentru alte sisteme de operare, cum ar fi Linux, puteți utiliza singurul \ ca de obicei.

Toate operațiunile I/O (Intrare/Ieșire) ale conceptelor de fișiere în Java sunt realizate cu ajutorul unui flux. Să aprofundăm ce este un flux și cum sunt efectuate aceste operațiuni cu acesta?

Care este conceptul de fluxuri în Java?

În termeni mai simpli, un flux este o serie de date. Există două tipuri de flux, care sunt:

  • Flux de octeți : Acest tip de flux funcționează cu date de octeți. Operațiile I/O sunt efectuate cu un flux de octeți atunci când citiți sau scrieți date în format de octeți (8 biți).
  • Flux de caractere : Acest tip de flux funcționează cu secvența de caractere. Operațiile I/O sunt efectuate cu un flux de caractere atunci când citiți sau scrieți date folosind caractere.

Checkout: Top proiecte Java pe GitHub

Care sunt diferitele metode disponibile pentru manipularea fișierelor în Java?

Clasa File oferă diverse metode predefinite pentru a vă ajuta să efectuați toate operațiunile I/O prin simpla apelare a acestora. Tabelul de mai jos prezintă toate metodele, împreună cu acțiunile pe care le efectuează.

Metodă Tip Descriere
canRead() boolean Verifică dacă poți citi fișierul sau nu.
poate scrie() boolean Testează dacă poți scrie sau nu în fișier.
createNewFile() boolean Aceasta va crea un nou fișier gol.
șterge() boolean Această metodă va șterge fișierul specificat.
exista() boolean Verifică dacă fișierul menționat există.
getName() Şir Returnează numele fișierului.
getAbsolutePath() Şir Returnează calea absolută a fișierului.
lungime() Lung Returnează dimensiunea fișierului în octeți.
listă() Şir[] Returnează o listă de nume de fișiere prezente în director.
mkdir() boolean Această metodă va crea un director nou.

Cum să efectuați diferite operații de manipulare a fișierelor Java?

Deoarece cunoașteți diferitele metode disponibile în clasa Fișier, este timpul să le utilizați pentru a efectua diferite operații de gestionare a fișierelor Java . Pentru început, puteți finaliza următoarele acțiuni pe un fișier.

  • Creați un fișier nou.
  • Obțineți informații despre fișier.
  • Scrieți într-un fișier.
  • Citiți dintr-un fișier.
  • Ștergeți un fișier.

Vom parcurge un exemplu pentru a efectua fiecare dintre aceste operații. În primul exemplu, vom crea un fișier nou și apoi vom folosi același fișier pentru a efectua alte sarcini.

Crearea unui fișier

Puteți crea un fișier cu metoda createNewFile(). Executarea metodei va returna fie adevărat, fie fals. Dacă fișierul este creat cu succes, va returna un adevărat. Pe de altă parte, dacă fișierul există deja, va returna un false.

Este întotdeauna recomandat să utilizați această metodă într-un bloc try and catch, deoarece poate arunca o excepție dacă fișierul nu este creat cu succes. Puteți afla mai multe despre aceasta în ghidul nostru despre gestionarea excepțiilor în Java . Vedeți exemplul de mai jos care utilizează metoda createNewFile() pentru a crea un nou fișier gol.

import java.io.File; // Importul clasei File

import java.io.IOException; // Importul clasei IOException pentru gestionarea erorilor

clasă publică CreateFileExample{

public static void main(String[] args){

încerca{

Fișier obj = fișier nou(„newFile.txt”);

if(obj.createNewFile()){ // dacă returnează adevărat, adică, creat cu succes

System.out.println(„File-ul este creat cu succes:” + obj.getName());

}

else{ // dacă returnează false, adică fișierul există deja

System.out.println(„Fișierul există deja”);

}

}

catch (IOException e){ // pentru a captura excepții dacă apare vreo eroare

System.out.println(„A apărut o eroare”);

e.printStackTrace();

}

}

}

Ieșire:

Fișierul a fost creat cu succes: newFile.txt

Obținerea informațiilor despre fișier

Puteți utiliza diferite metode definite în clasa Fișier pentru a accesa diferitele informații ale fișierului, cum ar fi numele, lungimea, calea absolută, citirea și multe altele. Unele dintre metodele de a obține informații despre fișiere sunt utilizate în exemplul de mai jos.

import java.io.File;

clasă publică AccessInfoExample{

public static void main(String[] args){

// Crearea unui obiect

Fișier obj = fișier nou(„newFile.txt”);

if(obj.exists()){

// Obține numele fișierului

System.out.println(„Numele fișierului este:” + obj.getName());

// Obține calea absolută

System.out.println(„Calea absolută a fișierului este:” + obj.getAbsolutePath());

// Verifică dacă fișierul poate fi scris

System.out.println(„Fișierul poate fi scris?” + obj.canWrite());

// Verifică dacă fișierul este lizibil

System.out.println(„Fișierul poate fi citit?” + obj.canRead());

// Obținerea lungimii în octeți

// Va afișa 0 deoarece nu am scris încă nimic în fișierul nostru

System.out.println(„Dimensiunea fișierului în octeți:” + obj.length());

}

altfel{

System.out.println(„Fișier numit” + obj.getName() + „nu există.”);

}

}

}

Ieșire:

Numele fișierului este: newFile.txt

Calea absolută a fișierului este: D:JavaProgramming:newFile.txt

Fișierul este inscriptibil? Adevărat

Este fișierul citibil? Adevărat

Dimensiunea fișierului în octeți: 0

Ieșirea exemplului de mai sus poate varia în funcție de numele fișierului, calea în care l-ați salvat și dimensiunea. Dacă fișierul specificat nu există, va afișa „Fișierul numit newFile.txt nu există”.

Scrierea într-un fișier

Pentru a scrie date de octeți, utilizați clasa FileOutputStream, iar pentru caractere, utilizați clasa FileWriter. În exemplul de mai jos, vom folosi clasa FileWriter și metoda sa predefinită write() pentru a scrie ceva în „nouul fișier”.

Un lucru de remarcat înainte de a începe cu exemplul este că ori de câte ori deschideți un fișier pentru scriere, trebuie să îl închideți cu metoda close(). Închiderea fișierului vă va permite să preluați resursele alocate de compilatorul Java pentru a scrie într-un fișier. Să ne uităm la cum se face în exemplu.

import java.io.FileWriter; // Importul clasei FileWriter

import java.io.IOException; // Importul clasei IOException pentru gestionarea erorilor

clasă publică WriteExample{

public static void main(String[] args){

încerca{

FileWriter obj = new FileWriter(“newFile.txt”);

obj.write(„Acesta va fi scris în fișierul newFile.txt!”);

obj.close(); // Închiderea fișierului

System.out.println(„Am scris cu succes în fișier și l-am închis.”);

}

catch(IOException e){

System.out.println(„A apărut o eroare.”);

e.printStackTrace();

}

}

}

Ieșire:

Am scris cu succes în fișier și l-am închis.

Citirea dintr-un fișier

Puteți folosi FileInputStream pentru a citi date octeți și FileReader pentru a citi datele caractere dintr-un fișier. Alternativ, puteți utiliza și clasa Scanner pentru a citi dintr-un fișier. Deoarece am folosit deja FileWriter pentru a scrie date, vom folosi clasa Scanner pentru a citi datele în acest exemplu. La fel ca în timpul scrierii, închiderea fișierului deschis este necesară și în timpul citirii.

import java.io.File; // Importul clasei File

import java.io.FileNotFoundException; // Importul clasei pentru tratarea erorilor

import java.util.Scanner; // Importul clasei Scanner pentru citirea fișierelor text

clasă publică ReadExample{

public static void main(String[] args){

încerca{

Fișier obj = fișier nou(„newFile.txt”);

Scanner robj = scaner nou(obj);

în timp ce (robj.hasNextLine()){

String dataInfo = robj.nextLine();

System.out.println(dataInfo);

}

robj.close();

}

catch(FileNotFoundException e){

System.out.println(„A apărut o eroare.”);

e.printStackTrace();

}

}

}

Ieșire:

Acesta va fi scris în fișierul newFile.txt!

Ștergerea unui fișier

Puteți șterge un fișier folosind metoda delete() a clasei File. De asemenea, puteți șterge un întreg folder dacă este gol. Să ștergem fișierul „newFile.txt” din exemplul de mai jos.

import java.io.File; // Importă clasa File

clasă publică DeleteExample{

public static void main(String[] args){

Fișier obj = fișier nou(„newFile.txt”);

if(obj.delete()){

System.out.println(„Fișierul numit” + obj.getName() + „este șters cu succes.”);

}

altfel{

System.out.println(„Fișierul nu a fost șters.”);

}

}

}

Ieșire:

Fișierul numit newFile.txt a fost șters cu succes.

Citiți și: Idei și subiecte de proiecte Java

Învață cursuri de software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

În această postare, ați învățat totul despre gestionarea fișierelor în Java . Java oferă diverse astfel de funcționalități, ceea ce îl face unul dintre cele mai populare limbaje de programare la nivel mondial. Prin urmare, nu este surprinzător faptul că salariul dezvoltatorilor Java din India este foarte mare. Dacă doriți să deveniți un dezvoltator Java și să obțineți un pachet salarial mare, cursul online Java gratuit de la upGrad este potrivit pentru dvs.

Cursul face parte din programul upStart, o inițiativă neprețuită de îmbunătățire a competențelor. Odată ce ați terminat cu cursul gratuit și obțineți certificarea, puteți opta în continuare pentru Certificarea PG de la upGrad în Dezvoltare Full-Stack . Obțineți peste 400 de ore de material de învățare cu experiență practică prin proiecte. Urmează cursul și excelează în domeniul dezvoltării software cu concepte de programare Java.

Cum să citești și să scrii în fișiere în Java?

Un obiect din clasa InputStream reprezintă o sursă de date din care pot fi citiți octeți, iar un obiect din clasa OutputStream reprezintă o destinație în care se pot scrie octeți. Astfel de obiecte sunt utilizate cu diferite clase ale pachetului java.io pentru a citi și scrie fișiere, pentru a citi și scrie date din socketuri și pentru a efectua o varietate de alte operațiuni de intrare și ieșire.

Care sunt diferitele biblioteci de gestionare a fișierelor în Java?

Există mai multe biblioteci de gestionare a fișierelor furnizate în java. Fiecare are propriul său scop și utilizare. Pachetul java.io definește clasele de bază de gestionare a fișierelor. Deci putem spune că este cea mai generală bibliotecă de gestionare a fișierelor. Pachetul java.nio, cunoscut și sub numele de pachetul New Input/Output, este utilizat în principal pentru transferul de date cu randament ridicat, latență scăzută și lățime de bandă redusă. Este sigur, ușor și independent de platformă. Acest pachet extinde pachetul java.io prin adăugarea de API-uri bazate pe canal. De asemenea, pachetul java.nio.file este pentru interfața de programare cu sistemele de fișiere. Un sistem de fișiere este o organizare ierarhică a datelor, independentă de mediul fizic, în care sunt stocate informații. Un sistem de fișiere permite partajarea fișierelor și comunicarea între procese între aplicații. De asemenea, pachetul java.nio.file.attribute este pentru clasele și interfețele pentru atributele sistemului de fișiere.

Care sunt aplicațiile de gestionare a fișierelor în Java?

Manipularea fișierelor este unul dintre multele subiecte interesante și valoroase de programare Java. Este vital pentru programatorii Java să știe cum să creeze, să deschidă, să citească, să scrie, să adauge și să ștergă un fișier în Java. Acest lucru îi ajută pe programatori să manipuleze datele dintr-un fișier. Există multe operații care pot fi efectuate asupra unui fișier, cum ar fi aflarea lungimii fișierului, citirea conținutului unui fișier, determinarea dacă fișierul poate fi scris și așa mai departe.