Јава: ИнпутСтреам. Улазни токови
Јава, као и многи модерни језиципрограмирање, подржава имплементацију токова уноса података. Ин Јава, ИнпутСтреам је основна класа за токове бајтова. Ова класа је апстрактна, тј. У процесу програма не можемо створити своју инстанцу. Међутим, у пакету ио постоји мноштво класа које наслеђују и прошире функционалност ИнпутСтреам-а. Да бисте користили ову класу у свом коду, морате га увезати из пакета јава.ио.ИнпутСтреам. Затим ћемо погледати основне функције које нуди ИнпутСтреам класа, као и главне класе које га имплементирају.
Методе за класу ИнпутСтреам
Пре него што пређемо на детаљну студијуИнпутСтреам методе класе, треба напоменути да се имплементира Цлосеабле и АутоЦлосеабле интерфејсе. Интерфејс Цлосеабле нам говори да по завршетку рада са протоком од тога мора нужно бити затворен. Ово се врши помоћу метода близу (). Пошто је већина ИнпутСтреам метода класе у случају грешке генерише тип изузетак ИОЕкцептион, све операције неопходне за спровођење три блок и близу метод () коначно направи јединицу тако да се активира у зависности од резултата рада покушати тело.
Интерфејс који се аутоматски закључава значајно смањујеколичина техничког кода, јер омогућава методу цлосе () да ради аутоматски и не додати коначни блок вашег кода. Ако користите седму или новију верзију Јава-а, ИнпутСтреам можете ставити у тзв. Покушај са ресурсима, који воде рачуна о свим операцијама затварања.
Размотрите основне методе класе ИнпутСтреам:
- инт аваилабле () - враћа број доступних бајтова за читање;
- инт реад () - преузима из ресурса тренутни бајт и враћа га у целокупно представљање; ако су сви бајтови прочитани, враћа -1;
- инт реад (бите [] буффер) - чита доступне бајтовеспецифицирани бафер као низ бајтова типа (број читања бајтова је једнак величини наведеног бафера, враћа број бајтова које су прочитане, уколико се читају сви доступни бајтови, враћа -1);
- инт реад (бите [] буффер, инт оффсет, интброј бајтова) - Оверлоад претходни поступак ради исту ствар, али је наведено у "оффсет" позицију и читати колико је дато у "број бајтова";
- дуго прескакање (дугачак број бајтова) - прескочи одређени број бајтова и враћа стварни број бајтова.
ИнпутСтреам је имплементиран од стране неколико класа, дизајнираних за рад са различитим изворима и типовима података. Древо наслеђа је приказано у наставку.
Читање датотека
Бите стреам за читање информација из датотекакоје имплементира класа ФилеИнпутСтреам. Да бисте отворили датотеку за читање битес, довољно је креирати инстанцу ове класе, преношући име датотеке у конструктор као аргумент. Ако датотека са датим именом не постоји, изузетак типа ФилеНотФоундЕкцептион ће бити бачен.
У случају успешног отварања датотеке, рад са њим се обавља коришћењем горе описаних метода, јер је ФилеИнпутСтреам наследник ИнпутСтреам-а.
Читање примитивних типова података
Претходни пример описује рад савриједности бите које се могу тумачити као симболи. Али шта ако треба да прочитамо цијели број, фракциону или логичку вредност? Да бисте то урадили, у Јава ИнпутСтреаму се индиректно проширује класа ДатаИнпутСтреам. Ова класа је омотач за ИнпутСтреам, који се пренесе на њега када се креира као аргумент за конструктора. Ова врста тока чита податке у бинарном облику.
ДатаИнпутСтреам такође имплементира ДатаИнпут интерфејс и његове методе за очитавање примитивних типова података. Испод је листа ових метода.
Имена метода говоре за себе - свака од њих је намењена за читање одређене врсте података.
Буфферед улазни ток
Уведен је стриктни читач податакакласа БуффередИнпутСтреам у Јава-у. ИнпутСтреам је уврштен у ову класу. Ова класа допуњује проток са бафером, што вам омогућава да читате више од једног бајта у исто вријеме. Ово омогућава значајно побољшање перформанси операције. БуффередИнпутСтреам је индиректни потомак ИнпутСтреам-а и, сходно томе, наслеђује све наведене методе.
Ова класа има два конструктора:
- БуффередИнпутСтреам (ИнпутСтреам улазни ток);
- БуффередИнпутСтреам (ИнпутСтреам улазни ток, инт буффер сизе)
Из потписа конструктора можете схватити да први поставља величину бафера подразумевано, ау другом је могуће подесити га ручно.
Закључак
Покривали смо основну имплементацију ИнпутСтреам-а. Ако требате претворити примљене бајтове у низ, а затим у Јава ИнпутСтреам у Стринг (), нажалост, није преоптерећен, па ћете за ово морати користити посебне услужне програме, на примјер ИОУтилс из библиотеке Апацхе Цоммонс.</ спан> </ п>