RačunalaProgramiranje

Java: rad s datotekama - pisanje, čitanje, brisanje

Java ima mnogo alata za rad s datotekama, jer oni služe kao spremište podataka u mnogim programima. Naročito je često potreban pristup datotekama u Java Androidu. Svi klasi za rad s datotekama nalaze se u paketu java.io, koji također pohranjuje nastavu za rad s ulaznim i izlaznim tokovima. Strogo govoreći, u Javi, rad s datotekama javlja se uglavnom kroz točke i karakterne tokove ulazno-izlaznih. Izuzetak u ovom slučaju je klasa datoteke. Počet ćemo s njom.

Datoteka Java klasa - rad s datotekama

Datoteka klasa izravno se komunicira s datotekama i datotečnim sustavom. Primjer ove klase koristi se prvenstveno za pristup svojstvima datoteka i premještanje hijerarhija poddirektorija. Ne definira kako izvući i spremiti podatke u datoteku, ali s ovim klase možete dobiti puno informacija o samoj datoteci: datumu, vremenu, pristupnim pravima i putu do direktorija. Zapravo, klasa datoteka je interpretacija objekta datoteke ili direktorija u Javi.

Da biste stvorili primjerak klase datoteka, upotrijebite jedan od njegovih konstruktora: Datoteka (String put do mape, String naziv datoteke).

Razmotrimo glavne metode ove klase, koje omogućuju dobivanje informacija o datoteci ili direktoriju:

  • GetName () - vraća naziv datoteke;
  • Postoji () - vraća Booleov vrijednost istinito ako datoteka postoji ili nije drugačije;
  • IsFile () - određuje hoće li objekt ukazati na datoteku, vraćajući odgovarajuću booleovsku vrijednost;
  • IsDirectory () - vraća točno ako je ovo mapa;
  • CanWrite () - vraća true ako je datoteka moguće pisati;
  • CanRead () - vraća true ako je datoteka čitljiva;
  • SetReadOnly () - čini datoteku samo za čitanje;
  • Duljina () - vraća veličinu datoteke u bajtovima;
  • RenameTo (Datoteke novog imena) - preimenuje trenutnu datoteku u skladu s prošlim argumentom. Vraća se istinito ako je operacija uspješna;
  • Izbriši () - briše datoteku ili mapu (ako je prazno) koju poziva objekt koji poziva;
  • Popis () - dohvaća popis imena objekata pohranjenih u ovom direktoriju kao niz nizova (odnosi se samo na direktorije).

Dakle, korištenjem klase datoteka, Java radi s datotekama i mapama.

Rad s datotekama pomoću datoteka FileInputStream i FileOutputStream

Ranije smo spomenuli da se u Javi, rad s datotekama provodi uglavnom putem I / O tokova. Baterijski tokovi za rad s datotekama prikazani su u obliku datoteka FileInputStream i FileOutputStream. Te su klase nasljednici osnovnih abstraktnih klasa InputStream i OutputStream, tako da su metode tih klasa dostupne za rad s datotekama.

Najprije razmotrite FileInputStream. Konstruktori ove klase su prikazani na slici u nastavku:

Prvi konstruktor uzima kao svoj argument put do ciljne datoteke kao niz, a drugi konstruktor kao prikaz objekta. Iako se prvi konstrukt koristi češće, u drugom slučaju moguće je proučiti svojstva datoteke u dostupnim metodama u datotečnoj datoteci. Kada se instanca klase stvori, FileInputStream otvara ulazni tok za čitanje datoteke.

U nastavku su prikazani konstruktori FileOutputStream klase:

Situacija je slična datoteci FileInputStream, ali također može uzeti logičku vrijednost "dodavanja", što na istini znači da će podaci koji su zapisani u ciljnu datoteku biti dodani onima koji su već dostupni, a ako je netočan, datoteka će biti potpuno prepisana; Stari podaci neće biti spremljeni.

Pogledajmo primjer pomoću ovih klasa:

Ulazni stream FileInputStream čita podatke iz datoteke1.txt po bajtu koristeći metodu read (). Svaki čitati bajt pohranjuje se u varijablu u cjelobrojnom obliku. Nadalje u tijelu petlje, ova se varijabla prosljeđuje kao argument za metodu pisanja instance FileOutputStream, koja zapisuje primljeni bajt to file2.txt. Na kraju, obje niti zatvorene su bliskom metodom.

Razredi FileReader i FileWriter

Ako znate da kada se bavite s datotekama bavit ćete se tekstom, a umjesto bajtova potoci ima smisla koristiti simboličke. Te tokove predstavljaju razredi FileReader i FileWriter u Java. Rad s datotekama pomoću tih klasa događa se na isti način kao u prethodnom slučaju. Oni su potomci časopisa Reader i Writer, koji definiraju osnovne metode za unos i izlaz podataka.

Konstruktori za FileReader i FileWriter klase prikazani su na donjoj slici:

Slažem se, praktički nema razlike u semantici u odnosu na točke potoka. Dno crta je da su te klase dizajnirane posebno za rad s Unicode znakovima, koje točke bokovi ne mogu učiniti. Ovako Java radi s datotekama. Primjer upotrebe ovih klasa prikazan je u nastavku:

Kao što vidite, nema razlika. Važno je napomenuti da, iako su tokovi simbolični, vraća se metoda čitanja, a metoda za pisanje uzima cijelu vrijednost. Iako potpisivanje postupka pisanja pretpostavlja da se primijeni argument int, samo su niže 16 bita zapisani u stream, budući da su znakovi u Java prikazani upravo tom broju bita.

zaključak

Dakle, rastavili smo glavne klase za rad s datotekama u Javi. Važno je napomenuti da, ako ćete razviti softver za Java Android, možete sigurno koristiti ovaj alat.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hr.birmiss.com. Theme powered by WordPress.