Java ima mnogo alata za rukovanje datotekama, jer oni služe kao skladište podataka u mnogim aplikacijama. Često je potreban pristup datotekama u Java Androidu. Sve klase za rad s datotekama nalaze se u java.io paketu, koji također pohranjuje klase za rad s ulaznim i izlaznim strujama. Strogo govoreći, u Java rad s datotekama je uglavnom zbog bajt i znak ulaz /izlaz potoci. Izuzetak je klasa Datoteka. Počnimo s tim.
Klasa Datoteka Java - rad s datotekama
Za stvaranje instance klase File, koristite jedan od njegovih konstruktora: File (String put do mape, String filename). Razmotrite osnovne metode ove klase, koje vam omogućuju da dobijete informacije o datoteci ili direktoriju:
Rad s datotekama korištenjem klasa FileInputStream i FileOutputStream
Prvi konstruktor uzima kao argument put do željene datoteke u obliku niza, a drugi - u obliku objektnog prikaza. Iako se prvi konstruktor koristi češće, u drugom slučaju moguće je ispitati svojstva datoteke koja je dostupna u metodama klase File. Kada stvarate instancu klase FileInputStream, ona otvara ulazni tok za čitanje datoteke.
Konstruktori razreda FileOutputStream prikazani su u nastavku:
Situacijaslično FileInputStream, ali može prihvatiti i logičku vrijednost "append", što u pravom slučaju znači da će podaci snimljeni u konačnoj datoteci biti dodani postojećim, a kod false - doći će do potpunog prepisivanja datoteke, odnosno stari podaci neće biti spremljeni. , Pogledajmo primjer koristeći ove klase:
Ulazna struja FileInputStream čita podatke iz bajta datoteke file1.txt pomoću metode read (). Svaki čitaj bajt je pohranjen u cijeli broj. Sljedeće u tijelu ciklusa dok je ova varijabla proslijeđena kao argument za metodu upisivanja instance FileOutputStream, koja piše primljeni bajt u datoteku file2.txt. Na kraju oba navoja obavezno zatvaranje zatvara se metodom zatvaranja.
Ako znate da kada radite s datotekama, radit ćete s tekstom, a umjesto bajtnih tokova ima smisla koristiti znak. Ove niti su predstavljene s FileReader i FileWriter klasama u Javi. Rad s datotekama koje koriste ove klase otprilike je isti kao u prethodnom slučaju. Oni su potomci klase Reader i Writer, koji definiraju osnovne metode za ulazne i izlazne podatke. Dizajneri klasa FileReader i FileWriter prikazani su na sljedećoj slici:
Konstruktori razreda FileOutputStream prikazani su u nastavku:
Klase FileReader i FileWriter
Slažem se, praktički nema razlika u semantici u usporedbi s tokovima bajtova. Donja crta je da su ove klase posebno dizajnirane za rad s znakovima u Unicodeu, koji se ne mogu obavljati bajtovima. Ovako su organizirane Java datoteke. Primjer korištenja ovih klasa dat je u nastavku:
Kao što možete vidjeti,nisu uočene razlike. Važno je napomenuti da iako su tokovi simbolički, metoda čitanja se vraća, a metoda upisivanja uzima cjelobrojnu vrijednost. Iako potpis metode upisivanja uključuje prihvaćanje argumenata tipa int, samo se 16 bitova zapisuje u tok, budući da su znakovi u Javi predstavljeni samo tim brojem bitova.
Dakle, rastavili smo osnovne klase za rad s datotekama u Javi. Važno je napomenuti da ako želite razvijati Java iz Androida, možete sigurno koristiti ovaj alat.