Kuidas Java InputStream töötab

Kuidas Java Inputstream Tootab



Java võimaldab arendajatel failidega töötada. Sellisel juhul on ' InputStream ” hakkab kehtima klass, mis aitab lugeda määratud faili sisu ja analüüsida sisalduvaid baite. Selle tulemuseks on mäluprobleemidega toimetulemine ja ka valikulise faili sisu nõuetekohane tagastamine.

See kirjutis käsitleb üksikasjalikumalt 'InputStreami' tööd Javas.







Kuidas Java InputStream töötab?

„InputStream” klass java.io ” pakett vastab abstraktsele superklassile, mis tagastab määratud faili baitidest koosneva sisendvoo.



InputStreami alamklassid

Funktsioonide 'InputStream' rakendamiseks saab kasutada selle järgmisi alamklasse:



    • FileInputStream
    • ObjectInputStream
    • ByteArrayInputStream

See on selline, et need alamklassid laiendavad klassi 'InputStream'.





InputStreami meetodid

Klass 'InputStream' sisaldab erinevaid meetodeid, mida selle alamklassid rakendavad. Järgmised on mõned kõige sagedamini kasutatavad meetodid:

meetodid Funktsionaalsus
loe () See loeb sisendvoost baiti andmeid.



loe (bait[] massiiv) Samuti loeb see voost baite ja salvestab need sihtmassiivi.

vahele jätma() See meetod jätab sisendvoost teatud arvu baite vahele/välja.

saadaval () See annab sisendvoos sisalduvad baidid.
reset() See annab juurdepääsu voopunktile, kus märk määrati.

mark () See meetod tähistab asukohta voos, milleni andmeid loeti.

markSupported() See analüüsib, kas 'mark()' ja 'reset()' meetodid on voos toetatud/ühilduvad.


Enne näite juurde suundumist importige järgmised paketid, et töötada koos „InputStreami” ja selle alamklassiga:

importida java.io.FileInputStream;
importida java.io.InputStream;


Näide: InputStreami töötamine Javas

See näide illustreerib „InputStreami” tööd, lugedes faili sisu „InputStream” meetodite abil:

avalik klass Inputstream {
avalik static void main ( String args [ ] ) {
bait [ ] givenarray = uus bait [ viiskümmend ] ;
proovige {
InputStream readData = uus FileInputStream ( 'readfile.txt' ) ;
System.out.println ( 'Baidid failis ->' + readData.available ( ) ) ;
readData.read ( antud massiiv ) ;
System.out.println ( 'Loe failiandmeid:' ) ;
String includedata = uus string ( antud massiiv ) ;
System.out.println ( sisaldavaid andmeid ) ;
readData.close ( ) ;
}
püüda ( Erand, välja arvatud ) {
välja arvatud.getStackTrace ( ) ;
}
} }


Vastavalt ülaltoodud koodiridadele tehke alltoodud toimingud:

    • Esiteks looge 'baidi' massiiv, mis võib sisaldada maksimaalselt ' viiskümmend ” baitide väärtused loetud failis.
    • Järgmises etapis looge ' InputStream ' kasutades 'FileInputStream' ja tagastage määratud faili saadaolevad baidid seotud ' saadaval () ” meetod.
    • Pärast seda lugege sisendvoost baite, kasutades nuppu ' loe () ” meetod.
    • Nüüd teisendage baidimassiivi stringiks ja kuvage faili sisu.
    • Lõpuks sulgege lugemisfail, kasutades sellega seotud ' Sulge() ” meetod.

Väljund


Selles tulemuses võib järeldada, et failis olevate baitide arv, st sisu kogutud ruum, tagastatakse vastavalt baitimassiivi maksimaalsele vahemikule, st '50'. Samuti tagastatakse faili sisu asjakohaselt.

Faili sisu


Et saada ülevaadet vahele jätma() ” ja „ reset() ” meetodid, kaaluge järgmist demonstratsiooni:


Sellel joonisel jätab 'skip()' meetod vahele määratud arvu baite, st ' 5 -> Java ” faili sisust algusest peale. Meetod 'reset()' lähtestab aga voo.

Järeldus

' InputStream klassi '' java.io ” pakett on abstraktne superklass, mis vastab failiandmete lugemiseks kasutatavale baitide sisendvoole. See klass sisaldab erinevaid meetodeid, mis aitavad faili tõhusalt lugeda vastavalt nõuetele. See ajaveeb demonstreeris Java sisendstreami eesmärki ja toimimist.