Java-faili sisendvoog Ubuntu 20.04-s

Java Faili Sisendvoog Ubuntu 20 04 S



'Selles artiklis käsitleme erinevaid viise, kuidas Java sisendvoo klassi kasutades failidest andmeid baitimassiivi lugeda. See klass esindab failist sorteeritud baitide voogu. Java sisendvoo klassis on mitu funktsiooni, mida tavaliselt kasutatakse ja mida selles artiklis käsitletakse, näiteks meetodid read(), saadaval(), skip() ja close(). Neid meetodeid kasutatakse erineva laiendiga failide (nt bin- või txt-failide) lugemiseks ja neid saab muuta, et saada teavet faili mis tahes punktist. Selles artiklis rakendame neid meetodeid Ubuntu 20.04 keskkonnas.

Klassis File Input Stream on veel palju meetodeid, mis on samuti väga abiks failist andmete hankimisel; mõned neist on int read(bait[] b), see funktsioon loeb andmeid sisendvoost kuni b.length baidi pikkuseni. Failikanal saab kanali(): faili sisendvooga ühendatud konkreetne failikanali objekt tagastatakse seda kasutades. Finalize() kasutatakse selleks, et tagada sulgemisfunktsiooni käivitamine, kui faili sisendvoo jaoks pole enam viidet.

Näide 01: ühe baidi lugemine tekstifailist, kasutades sisendvoo klassi meetodeid read() ja close()

See näide kasutab failisisestusvoogu ühe märgi lugemiseks ja sisu printimiseks. Oletame, et meil on fail nimega 'file.txt', mille sisu on allpool näidatud:









Oletame, et meil on ülaltoodud sisuga fail nimega 'file.txt'. Proovime nüüd lugeda ja printida faili esimest tähemärki.







Esmalt peame importima java.io. Faili sisendvoo pakett failisisendvoo loomiseks. Seejärel loome failisisendvoo uue objekti, mis lingitakse muutujas “f” määratud failiga (file.txt).

Selles näites kasutame Java File Input Stream klassi meetodit 'int read()', mida kasutatakse failist ühe baidi lugemiseks ja selle salvestamiseks muutujasse 'I'. Järgmisena kuvab 'System.out.print(char(i))' sellele baidile vastava märgi.



Meetod f.close() sulgeb faili ja voo. Järgmise väljundi saame pärast ülalnimetatud skripti koostamist ja käivitamist, kuna näeme, et trükitakse ainult teksti algustäht “L”.

Näide 02: tekstifaili kogu sisu lugemine sisendvoo klassi meetodite read() ja close() abil

Selles näites loeme ja kuvame kogu tekstifaili sisu; nagu allpool näidatud:

Taas impordime java.io. Faili sisendvoo pakett failisisendvoo loomiseks.

Esiteks loeme faili esimese baidi ja kuvame vastava märgi while-tsükli sees. While-tsükkel jookseb seni, kuni baite pole järele jäänud, st failis oleva teksti lõpuni. 12. rida loeb järgmist baiti ja tsükkel jätkub kuni faili viimase baidini.

Pärast ülaltoodud koodi koostamist ja täitmist saame järgmised tulemused. Nagu näeme, kuvatakse terminalis kogu faili “Lorep Ipsum” tekst.

Näide 03: saadaolevate baitide arvu määramine tekstifailis, kasutades sisendvoo klassi meetodit available()

Selles näites kasutame failisisestusvoo funktsiooni 'available()', et määrata olemasolevate baitide arv faili sisendvoos.

Esiteks genereerisime failisisendvoo klassi objekti nimega 'a' järgmise koodiga. 5. real kasutasime failis saadaolevate baitide koguhulga määramiseks ja kuvamiseks meetodit 'available()'. Seejärel kasutasime realt 6 kuni 8. funktsiooni 'read ()' kolm korda. Nüüd 9. real kasutasime järelejäänud baitide kontrollimiseks ja kuvamiseks uuesti meetodit 'available()'.

Pärast koodi kompileerimist ja käivitamist näeme, et väljundi esimene rida näitab failis saadaolevate baitide koguarvu. Järgmine rida näitab koodi lõpus saadaolevate baitide arvu, mis on 3 võrra väiksem kui alguses saadaolevate baitide arv. Seda seetõttu, et kasutasime oma koodis kolm korda lugemismeetodit.

Näide 04: tekstifaili baitide vahelejätmine, et lugeda andmeid konkreetsest punktist, kasutades sisendvoo klassi meetodit skip()

Selles näites kasutame failisisendvoo meetodit „skip(x)”, mida kasutatakse sisendvoo antud baitide arvu ignoreerimiseks ja arvestamata jätmiseks.

Allolevas koodis oleme esiteks loonud faili sisendvoo ja salvestanud selle muutujasse 'a'. Järgmiseks oleme kasutanud meetodit 'a.skip(5)', mis jätab faili esimesed 5 baiti vahele. Järgmisena printisime faili ülejäänud tähemärgid, kasutades 'read()' meetodit ajatsükli sees. Lõpuks sulgesime faili sisendvoo 'close ()' meetodil.

Allpool on terminali ekraanipilt pärast koodi koostamist ja käivitamist. Nagu näeme, kuvatakse ainult 'Ipsum', kuna oleme esimesed 5 baiti vahele jätnud kasutades 'skip()' meetodit.

Järeldus

Selles artiklis oleme arutanud klassi File Input Stream kasutusalasid ja selle erinevaid meetodeid; read(), saadaval(), skip() ja close(). Kasutasime neid meetodeid faili esimese elemendi lugemiseks, kasutades meetodeid read() ja close(). Seejärel loeme kogu faili iteratiivse lähenemise kaudu ja samu meetodeid kasutades. Seejärel kasutasime faili alguses ja lõpetamisel olemasolevate baitide arvu määramiseks meetodit available(). Pärast seda kasutasime meetodit skip(), et enne faili lugemist vahele jätta mitu baiti, mis võimaldas meil hankida vajalikud andmed.