Savjeti

Kako čitati i pisati bajt tokove

Kako čitati i pisati bajt tokove

Čitanje i pisanje binarnih protoka jedan je od najčešćih I / O zadataka koje Java aplikacija može obavljati. Može se izvesti gledanjem svakog pojedinog bajta u potoku ili korištenjem strukturiranijeg puferiranog pristupa.

Bilješka: Ovaj članak govori o čitanju binarnih podataka iz

example.jpgdatoteka. Ako isprobate ovaj kod, jednostavno zamijenite ime

example.jpgs putanjom i imenom jpeg datoteke na vašem računalu.

Byte byte

The

java.ioklasa je prvi Java api koji je pružio ulazno / izlaznu funkcionalnost. Ima dvije metode koje se mogu koristiti za unos i izlaz tokova bajtova (blokovi od 8 bita) iz i u datoteku. Ove klase su

FileInputStreami

FileOutputStream. Ove metode pružaju osnovnu metodu I / O-a tako što datoteci omogućuju unos ili izlaz jedan bajt po jedan. U praksi je bolje koristiti puferiranu metodu za binarne tokove, ali dobro je pogledati najosnovniji gradivni blok Java I / O funkcionalnosti.

Primjetite kako postavljamo I / O rukovanje unutar a

probaj, uhvati, napokonblok-to je da bi se osiguralo da obrađujemo IO iznimke i pravilno zatvorimo streamove. Blok hvatanja prikazat će sve izuzeće I / O koji se događaju i ispisati poruku za korisnika. Na kraju je važno eksplicitno zatvoriti tokove pozivanjem metode zatvaranja jer će oni ostati otvoreni i rasipati resurse. Postoji provjera da li je to

FileInputStreami

FileOutputStreamnula su prije pokušaja zatvaranja. To je zato što bi se I / O greška mogla dogoditi prije inicijalizacije streamova. Na primjer, ako je naziv datoteke pogrešan, tok se neće otvoriti pravilno

probajblok možemo dodati kôd za čitanje u bajtovima:

čitatimetoda čita se u jednom bajtu iz

FileInputStreama metoda zapisivanja upisuje jedan bajt u

FileOutputStream. Kada se dostigne kraj datoteke i nema više bajtova za unos, vrijednost -1 se vraća.

Sada kada je Java 7 objavljena, možete vidjeti prednost jedne od njenih novih značajki - pokušaj s blokom resursa. To znači da ako na početku identificiramo tokove do pokušajnog bloka, on će upravljati zatvaranjem toka za nas. Ovo eliminira potrebu za konačnim blokom u prethodnom primjeru:

Potpuni popisi Java koda za dvije verzije programa za čitanje bajtova mogu se naći u primjeru koda binarnog toka.


Pogledajte video: My stroke of insight. Jill Bolte Taylor (Septembar 2021).