Јава ОбјецтИнпутСтреам

Java Objectinputstream



„Информацијама написаним преко објекта ОбјецтОутпутСтреам се првенствено приступа помоћу класе ОбјецтИнпутСтреам. Главни циљ класе ОбјецтИнпутСтреам би био да реконструише основне податке и ентитете који се производе коришћењем класе ОбјецтОутпутСтреам. Коришћењем СоцкетСтреам-а, ОбјецтИнпутСтреам се такође може користити за пренос објеката преко различитих хостова. Због тога смо одлучили да напишемо користан водич за наш Убунту 20.04 систем за одбацивање објекта класе објецтинпутстреам ради читања података из улазног тока датотеке. Почнимо са отварањем конзоле.'

Пример 01

Почевши од првог примера нашег чланка, креирали смо нову јава датотеку, „тест.јава“. Након тога, такође смо генерисали текстуалну датотеку у истој фасцикли.







Да бисмо читали објекте улазног тока у јава програму, потребно је да увеземо излазни ток. Дакле, на почетку смо увозили пакете „јава.ио.ОбјецтИнпутСтреам“ и „јава.ио.ОбјецтОутпутСтреам“. Уз то, да бисмо убацили податке у датотеку, морамо да увеземо „јава.ио.ФилеИнпутСтреам“ и „јава.ио.ФилеИнпутСтреам“. Направили смо класу „Маин“ која садржи једну функцију маин().



Извршење функције почиње од декларације целобројне променљиве “д”. Да бисмо избегли изненадни излаз из програма због грешака, додали смо наредбу три-цатцх јава. Део „покушај“ почиње иницијализацијом објекта излазног тока датотеке „ф“ преко ФилеОутпутСтреам класе. Проследили смо име датотеке „нев.ткт“ овом објекту „ф“. Направили смо излазни ток објеката „о“ и проследили објекат датотеке „ф“ класи ОбјецтОутпутСтреам да би датотека била излазни ток.



У следећем реду, позвали смо функцију вритеИнт() Јава излазног тока преко објекта излазног тока „о“ да бисмо му пренели целобројну променљиву „д“, тј. да бисмо је сачували у датотеци. У реду 12, креирали смо улазни ток датотеке „фс“ користећи класу ФилеИнпутСтреам јава тако што смо јој пренели датотеку „нев.ткт“, тј. већ имамо податке у њој. Овај објекат улазног тока датотеке „фс“ је прослеђен новогенерисаном објекту „ос“ класе ОбјецтИнпутСтреам да би се омогућило читање из тока датотеке. Функција принтлн() из пакета “Систем.оут” јава је одбачена да позове функцију реадИнт() преко објекта улазног тока објекта “ос” да прикаже податке из нове.ткт датотеке. Након тога, затворили смо излазни и улазни ток користећи њихове објекте „о“ и „ос“ користећи функцију „цлосе“ за руковање датотекама у Јави. Ово је неопходан корак за затварање токова тако да ниједан други корисник не може да унесе или изађе податке из датотеке. У оквиру наредбе цатцх() користили смо функцију гетСтацкТраце() да бисмо добили грешку и приказали је на екрану преко променљиве Екцептион „е“. Овај програм је спреман за извршавање на љусци.





Управо смо сачували нашу датотеку јава кода пре њеног извршења и користили инструкцију кључне речи јава да извршимо датотеку „тест.јава“. Не враћа ништа заузврат. Такође, приказивање података текстуалне датотеке „нев.ткт“ на љусци помоћу инструкције „цат“ приказало је вредност смећа. То је зато што, већину времена, јава извршитељ није у могућности да прочита целобројну вредност из датотеке. Али највероватније ће приказати тачну целобројну вредност.



Када смо проверили датотеку нев.ткт ручним отварањем, видели смо да је Уницоде формат вредности приказан у датотеци.

Ако нисте у могућности да прикажете целобројну вредност из тока датотеке, можете да користите функцију вритеОбјецт() у јава програму уместо функције вритеИнт() да запишете вредност „д“ у ток датотеке преко објекта „о“ како је приказано. Уз то, потребно је да искључите функцију „реадОбјецт()“ уместо функције реадИнт() да бисте приказали податке из улазног тока датотеке.

Ажурирање овог кода би приказало целобројну вредност приликом извршавања.

Пример 02

Хајде да имамо другу вредност јава програмирања за одбацивање улазног тока објекта за вредност типа стринга. Стога смо започели овај пример кода увозом истих класа ФилеИнпутСтреам, ФилеОутпутСтреам, ОбјецтИнпутСтреам и ОбјецтОутпутСтреам из „ио“ пакета јава библиотеке. Класа Маин има своју функцију маин() за почетак извршавања овог кода. Променљива стринга „д2“ се иницијализује дугом вредношћу стринга.

Иста изјава три-цатцх је одбачена да би се избегла грешка и ради глатког извршавања овог јава кода. Објекат „ф“ за излазни ток датотеке је креиран преко ФилеОутпутСтреам класе узимајући „нев.ткт“ као аргумент. Објект излазног тока датотеке „ф” је прослеђен објекту излазног тока „о” који је креиран коришћењем класе ОбјецтОутпутСтреам. Сада, излазни ток „о“ позива функцију вритеОбјецт() тако што јој је прослеђивао стринг променљиву „д“ која ће бити записана у датотеци „нев.ткт“.

Затим креирајте улазни ток датотеке „фс“ користећи класу ФилеИнпутСтреам тако што ћете јој пренети име датотеке „нев.ткт“, тј. да бисте прочитали податке из ње. Сада, објекат класе ОбјецтИнпутСтреам „ос“ би користио објекат улазног тока датотеке „фс“ за читање података користећи реадОбјецт() функцију јава у „принтлн“ извршној изјави класе „Систем.оут“. Затим, тежимо да затворимо улазне и излазне токове позивањем функције „цлосе“, а наредба цатцх се користи да би се дошло до било каквих изузетака у делу покушаја и избегло изненадно затварање овог програма.

Извршење ове датотеке јава кода и текстуалне датотеке приказало је вредност стринга на конзоли.

Закључак

Употреба класе ОбјецтИнпутСтреам је једина доступна метода за читање супстанци које користе Сериализабле или Ектернализабле протокол. Да резимирамо, укључили смо све неопходне детаље за коришћење Јава-ине класе објецтинпутстреам за читање података из улазног тока објекта датотеке. За ово, овде смо бацили два различита примера јава кода. Први пример користи вредност улазне променљиве типа целобројног типа, док друга илустрација одбацује вредност стринг променљиве, односно чита се из тока улазне датотеке.