Cuprins
În ciuda faptului că ați lucrat Baze de date Este un lucru foarte bun și ne economisește multă muncă atunci când facem interogări și raportăm înregistrări, sunt momente când trebuie să generăm fișiere, deoarece nu avem un server Bază de date disponibil sau poate pentru că nu este nevoie să salvăm o înregistrare, ci un set de date fără legătură.Gestionarea fișierelor este un domeniu pe care mulți îl consideră încă complex sau poate depășit, cu toate acestea acest lucru este incorect, generarea de fișiere este vitală în dezvoltarea sistemelor și aplicațiilor. Un fișier poate varia de la generarea unui fișier .txt cu unele linii în special, până la generarea de mari .xml că putem defini o configurație.
Pentru a gestiona tot ceea ce presupune crearea unui fișier pe un sistem, Java conta pe clasă Fişier în cadrul pachetului de bibliotecă pentru tratarea datelor de intrare și ieșire java.io. Această clasă ne oferă diferite metode care ne permit să efectuăm operațiuni de la creați și ștergeți fișiere, pentru a crea directoare, pentru a valida permisiuni etc..
Înainte de a vedea în practică cum putem folosi clasa pentru a efectua operații de fișiere, trebuie să înțelegem că acestea fac unele dintre metodele lor principale, cu aceasta vom avea o bază teoretică la care putem merge atunci când ni se prezintă o anumită problemă care necesită gestionarea fișierelor din programele noastre:
există ()Această metodă ne oferă un răspuns boolean despre existența unui anumit fișier într-un director pe care îl specificăm atunci când îl invocăm, evident că returnează adevărat sau adevărat dacă fișierul este găsit și fals sau fals dacă nu este.
getCanonicalPath ()Această metodă returnează numele complet, inclusiv calea fișierului, este foarte important să obținem poziția absolută a fișierului nostru în cadrul sistemului în care executăm programul nostru.
getName ()Spre deosebire de metoda anterioară, aceasta returnează doar numele relativ și scurt al fișierului, adică fără a include adresa sau folderul în care se află.
canRead ()Această metodă ne permite să verificăm dacă avem permisiunea de a citi fișierul, este foarte important să validăm dacă putem sau nu să citim un fișier înainte de a începe o operație cu acesta, astfel putem reduce excepțiile și economisi resursele sistemului.
poate scrie ()Aceasta este o altă metodă care ne ajută să validăm permisiunile pentru fișiere, atunci când o aplicăm pe o instanță a clasei Fişier ne va informa dacă putem scrie fișierul corespunzător.
lungime ()Această metodă este una dintre cele mai utile, deoarece ne permite să cunoaștem dimensiunea unui fișier, o verificare importantă la procesare.
isFile ()În cele din urmă, această metodă ne permite să știm dacă ceea ce evaluăm este un fișier sau un director, așa că vom ști dacă lucrăm la structura dorită.
crearea unui fișier Este un proces prin care scriem în cadrul sistemului în care rulează programul nostru. Există o diferență între scrierea unui fișier și scrierea într-un fișier, primul ne spune că generăm fișierul în sistem, dar nu am adăugat neapărat conținutul; Pe de altă parte, al doilea ne spune că adăugăm conținut într-un fișier existent.
Se pot întreba de ce dorim un fișier gol, un fișier gol nu este inutil, poate face parte dintr-un proces mai mare în cadrul unei aplicații, de exemplu o metodă creează fișierul și după un rezultat al unui proces, o altă metodă are grijă de adăugare date la acesta. Poate fi vital și în validări, unde generăm fișiere temporare pentru a indica programului în ce fază a procesului ne aflăm etc.
Să vedem mai jos un cod mic în care generăm un fișier plat gol.
import java.io. *; import java.io.File; public class CreateFiles {public static void main (String [] argv) aruncă IOException {if (argv.length == 0) {System.err.println ("Trebuie să introduceți un nume după parametru"); System.exit (1); } pentru (String nume fișier: argv) {new File (nume fișier) .createNewFile (); }}}
Vedem că primul lucru pe care îl facem este un import al claselor de java.io pentru a putea accesa gestionarea excepțiilor cu IOException, apoi importăm clasa java.io.Fisier ceea ce ne permite să manipulăm direct fișierele.
Apoi ne creăm clasa și în metoda ei principal Indicăm că va primi argumente, facem acest lucru pentru a indica dinamic numele fișierelor. Deoarece avem nevoie de un nume, ceea ce facem este o mică validare, care indică faptul că, dacă nu este primit un nume de fișier, i se cere să îl plasăm și programul este terminat. În cele din urmă, pentru fiecare argument primit, vom crea un fișier nou, cu aceasta ceea ce facem este o nouă instanță a clasei Fişier și cu metoda createNewFile () generăm fișierul în sistem.
Trebuie să fim conștienți de faptul că, dacă programul nostru nu are suficiente permisiuni pentru a crea un fișier în directorul său, vom primi o eroare. Fără alte întrebări, să vedem cum arată programul nostru când îl rulăm pe consolă:
MARI
Putem vedea cum a funcționat validarea noastră inițială și apoi, după ce am trecut numele fișierului, a fost generat, pentru a verifica aceasta din urmă, am făcut pur și simplu o dir din directorul nostru și astfel verificăm existența fișierului.O altă dintre cele mai frecvente operații atunci când lucrați cu fișiere după scriere și ștergere este redenumirea, pentru aceasta în Java Trebuie să urmăm un proces care poate părea complicat, dar, așa cum vom vedea în exemplul care va însoți explicația, este ceva destul de ușor de înțeles.
Cum să o facă?Redenumiți un fișier în Java necesită două obiecte de tip Fişier, primul va conține fișierul pe care dorim să îl redenumim și al doilea conține noul nume al fișierului, odată ce îndeplinim aceste condiții trebuie să apelăm metoda renameTo () peste obiectul fișier existent și treceți-i noul obiect cu noul nume.
Să vedem codul de care avem nevoie pentru a efectua operația de redenumire a fișierului nostru:
import java.io. *; import java.io.File; public class RenameFiles {public static void main (String [] argv) aruncă IOException {File FirstObject = new File ("NewFile.txt"); File secondobject = new File ("FileWithNewName.txt"); FirstObject.renameTo (SecondObject); }}
Importăm clasele și pachetele corespunzătoare, păstrând la fel ca exemplul anterior.
În interiorul metodei main () vom crea primul nostru obiect și vom pune numele fișierului pe care l-am creat în exemplul anterior în acest caz este FileNew.txt. Apoi creăm un al doilea obiect cu noul nume pe care îl dorim pentru fișierul nostru, în exemplul pe care l-am ales FileWithNewName.txt.
În sfârșit, la primul obiect aplicăm metoda renameTo () iar ca argument sau parametru îi pasăm al doilea obiect care are noul nume pentru fișierul nostru. Să vedem cum arată pe consolă când rulăm codul nostru:
MARI
Am observat cum s-a schimbat folderul și acum reflectă noul nostru fișier în comparație cu executarea primului exemplu de creare a fișierului.În cele din urmă vom vedea cealaltă operație care este destul de obișnuită atunci când lucrați cu fișiere și care este ștergerea, aceasta este probabil una dintre cele mai simple, deoarece trebuie doar să cunoaștem numele fișierului, să validăm că acesta există și apoi să procedăm la ștergere folosind metoda șterge () unde vom trece numele fișierului în cauză. Să vedem în următorul cod cum realizăm acest lucru:
import java.io. *; import java.io.File; public class DeleteFile {public static void main (String [] argv) {delete ('FileWithNewName.txt'); } public static void delete (String filenameDelete) {încercați {File file = new File (filenameDelete); if (! file.exists ()) {System.err.println ("Fișierul" + numele fișierului Șterge + "nu există în acest director"); întoarcere; } if (file.delete ()) System.err.println ("** Fișierul" + fileNameDelete + "a fost șters **"); else System.err.println ("Nu s-a putut șterge fișierul:" + numele fișierului Șterge); } catch (SecurityException e) {System.err.println ("Imposibil de șters fișierul:" + DeleteFileName + "(" + e.getMessage () + ")"); }}}
Vedem că acest program este puțin mai extins decât cel anterior, asta pentru că am creat un funcție reutilizabilă Pentru ștergerea fișierelor, unde mai întâi validăm existența fișierului, apoi procedăm la ștergerea acestuia, aici vom valida că a fost șters într-adevăr, altfel informăm utilizatorul că fișierul nu a putut fi eliminat din sistemul de fișiere.
În consolă putem vedea cum am reușit să executăm cu succes această operațiune, pentru aceasta folosim fișierul pe care l-am redenumit în exemplul anterior, așa că atunci când facem o listă a conținutului folderului vom vedea modificarea reflectată:
MARI
În cele din urmă, vom încerca să ștergem din nou, astfel încât să putem observa validările care funcționează:MARI
Cu aceasta încheiem acest tutorial, am învățat să generăm fișiere, pe lângă executarea a două dintre cele mai utilizate acțiuni pentru manipularea fișierelor, cu aceasta putem încorpora aceste tehnici în programele și aplicațiile noastre, bucurându-ne de avantajele pe care le oferă acest tip de tehnici ne poate aduce.