Java: InputStream. Vhodni tokovi
Java, tako kot mnogi sodobni programski jeziki, podpira izvajanje vhodnih podatkovnih tokov. V Java je InputStream osnovni razred za tokovne byte. Ta razred je abstrakten, torej v procesu programa ne moremo ustvariti svojega primerka. Vendar pa v paketu io obstaja veliko razredov, ki podedujejo in razširjajo funkcionalnost InputStreama. Če želite ta razred uporabiti v kodi, jo morate uvoziti iz paketa java.io.InputStream. Nato bomo pregledali osnovne funkcije, ki jih ponuja razred InputStream, kot tudi glavne razrede, ki jih izvajajo.
Vsebina
Metode za razred InputStream
Pred nadaljevanjem podrobno preučevanje metod InputStream razreda, je treba omeniti, da se izvaja zaprejo in AutoCloseable vmesnike. Zaprti vmesnik nam pove, da je treba pri zapiranju nititi zapreti. To se naredi z uporabo metode close (). Ker je večina metod razreda InputStream v primeru napake ustvari tipa izjema IOException, vse postopke, potrebne za izvedbo poskusiti blok in metodo close () končno narediti napravo tako, da se sproži glede na rezultat operacije poskusiti telo.
Vmesnik AutoCloseable bistveno zmanjša količino tehnične kode, saj omogoča, da se metoda zapreti () samodejno požene in ne dodaja končno bloki kode. Če uporabljate sedmo ali kasnejšo različico Java, lahko InputStream postavite v tako imenovani poskus s sredstvi, ki skrbijo za vse zapiranje.
Razmislite o glavnih metodah razreda InputStream:
- int available () - vrne število bajtov, ki so na voljo za branje;
- int read () - vzame iz vira trenutni bajt in ga vrne v celostno predstavitev - če se berejo vsi bajti, se vrne -1;
- INT glasi (bajt [] pufer) - bere bajta voljo v omenjeni pufer v obliki tipa zlog polja (število bajtov za branje enaka predhodno določeni velikosti bufera- vrne število bajtov, ki bi prochitat- če vse razpoložljive bajtov brati, vrne -1);
- INT glasi (bajt [] pufer, int offset, int število bajtov) - preobremenitev prejšnjem postopku, počne isto, vendar z določeno igro "uravnoteži" in bere toliko, kot je določeno v "število bajtov";
- dolg preskok (dolga številka bajtov) - preskoči navedeno število bajtov in vrne dejansko število bajtov.
InputStream izvaja več razredov, zasnovanih za delo z različnimi viri in vrstami podatkov. Drevo dediščine je predstavljeno spodaj.
Branje datotek
Bajtski tok za branje informacij iz datotek izvaja razred FileInputStream. Če želite odpreti datoteko za branje bytov, je dovolj, da ustvarite primerek tega razreda, tako da podate ime datoteke v konstruktor kot argument. Če datoteka z navedenim imenom ne obstaja, bo izpuščena izjema tipa FileNotFoundException.
V primeru uspešnega odpiranja datoteke se delo z njim izvaja z zgoraj opisanimi metodami, ker je FileInputStream naslednik InputStreama.
Branje primitivnih podatkovnih tipov
V prejšnjem primeru je opisano delo z vrednostmi bajtov, ki jih je mogoče razlagati kot simbole. Kaj pa, če moramo prebrati celo število, delno ali logično vrednost? Če želite to narediti, v storitvi Java InputStream posredno razširite razred DataInputStream. Ta razred je ovojnik za InputStream, ki mu je posredovan, ko je ustvarjen kot argument za konstruktorja. Ta vrsta toka bere podatke v binarni obliki.
DataInputStream izvaja tudi vmesnik DataInput in njegove metode za branje primitivnih podatkovnih tipov. Spodaj je seznam teh metod.
Imena metod govorijo zase - vsaka od njih je namenjena branju določene vrste podatkov.
Buffered vhodni tok
Buffered data read stream izvaja razred BufferedInputStream v Java. V tem razredu je vdelan inputStream. Ta razred dopolnjuje tok z vmesnikom, ki omogoča branje več kot en bajt hkrati. To omogoča znatno izboljšanje delovanja operacije. BufferedInputStream je posredni potomec InputStreama in skladno s tem podeduje vse zgornje metode.
Ta razred ima dva konstruktorja:
- BufferedInputStream (vhodni vhodni vhod);
- BufferedInputStream (vhodni tok InputStream, velikost int medpomnilnika)
Iz podpisa konstruktorjev lahko razumete, da prvi določa privzeto velikost medpomnilnika, v drugem pa ročno nastavi.
Zaključek
Zajemali smo osnovno implementacijo InputStreama. Če želite pretvoriti prejete bajte v niz, nato pa v Java InputStream v niz (), na žalost, ni preobremenjen, zato boste morali uporabiti posebne pripomočke, na primer IOUtils iz knjižnice Apache Commons.
Java: izjeme in njihovo ravnanje
Kako namestiti Java v operacijskem sistemu Windows 7
Kako posodobiti Java v operacijskih sistemih Linux in Windows?
Prvi Java program je Hello World
Java programski jezik
Cigarete `Java`: opis in vrste
Java nizi nizov. Razvrščanje matrike v Java. Dvodimenzionalna Java matrika
Java: regularni izrazi, posebni znaki
Programiranje: Java. Vrste podatkov
Abstraktni razred in metoda: opis, značilnosti in značilnosti. Kakšna je razlika med abstraktnim…
Integrirano razvojno okolje Java
Java ni nameščen: kaj naj storim? Kako namestiti na Ubuntu?
Java Generics: Opis in metode
BigInteger Java: delo z velikimi številkami
Java Array. Nizi v Java. Java za začetnike
Java: работа с файлами - запись, чтение, удаление
Iz pomnilnika Minecraft: kaj storiti in kako se znebiti te napake
Kako omogočiti Java v Firefoxu za težave z zaklepanjem
Kako odstraniti java iz računalnika? To je enostavno!
Toki Java: Ustvarjanje in dokončanje
Kako napisati v datoteko v Java