Java ObjectInputStream

Java Objectinputstream



'Ang impormasyong nakasulat sa pamamagitan ng object ng isang ObjectOutputStream ay pangunahing naa-access gamit ang klase ng ObjectInputStream. Ang pangunahing layunin ng klase ng ObjectInputStream ay muling buuin ang pangunahing data at mga entity na ginawa sa pamamagitan ng paggamit ng klase ng ObjectOutputStream. Sa pamamagitan ng paggamit ng isang SocketStream, maaari ding gamitin ang ObjectInputStream upang maglipat ng mga bagay sa iba't ibang host. Samakatuwid, napagpasyahan naming magsulat ng isang kapaki-pakinabang na gabay para sa aming Ubuntu 20.04 system upang iwaksi ang objectinputstream class object upang basahin ang data mula sa file input stream. Magsimula tayo sa pagbubukas ng console.'

Halimbawa 01

Simula sa unang halimbawa ng aming artikulo, gumagawa kami ng bagong java file, 'test.java'. Pagkatapos nito, nakabuo din kami ng text file sa parehong folder.







Upang basahin ang mga bagay ng input stream sa isang java program, kailangan nating i-import ang output stream. Kaya, ini-import namin ang mga package na 'java.io.ObjectInputStream' at 'java.io.ObjectOutputStream' sa simula. Kasabay nito, upang maipasok ang data sa isang file, kailangan nating i-import ang 'java.io.FileInputStream' at 'java.io.FileInputStream'. Gumawa kami ng isang klase na 'Main' na may hawak na isang main() function.



Ang pagpapatupad ng function ay nagsisimula mula sa deklarasyon ng isang integer variable na 'd'. Upang maiwasan ang biglaang paglabas ng programa dahil sa mga error, idinagdag namin ang try-catch statement ng java. Ang bahaging 'subukan' ay nagsisimula sa pagsisimula ng isang file output stream object 'f' sa pamamagitan ng klase ng FileOutputStream. Ipinasa namin ang pangalan ng file na 'new.txt' sa object na ito na 'f'. Gumawa kami ng isang Object Output Stream na 'o' at ipinasa ang file object na 'f' sa klase ng ObjectOutputStream upang gawing output stream ang isang file.



Sa kasunod na linya, tinatawagan namin ang writeInt() function ng Java output stream sa pamamagitan ng output stream object na 'o' para ipasa ito ng integer variable na 'd,' ibig sabihin, para i-save ito sa isang file. Sa linya 12, gumawa kami ng file input stream 'fs' gamit ang FileInputStream class ng java sa pamamagitan ng pagpasa dito ng file na 'new.txt,' ibig sabihin, mayroon nang data dito. Ang file input stream object na 'fs' ay naipasa sa bagong nabuong object na 'os' ng ObjectInputStream class upang paganahin ang pagbabasa mula sa file stream. Ang println() function mula sa “System.out” package ng java ay na-castoff para tawagan ang readInt() function sa pamamagitan ng object input stream object na “os” para ipakita ang data mula sa new.txt file. Pagkatapos noon, isinasara na namin ang output stream at input stream gamit ang kani-kanilang mga object na 'o' at 'os' gamit ang 'close' function ng file handling sa java. Ito ay isang kinakailangang hakbang upang isara ang mga stream upang walang ibang user ang makapag-input o makapag-output ng data mula sa isang file. Sa loob ng catch() statement, ginagamit namin ang getStackTrace() function para makakuha ng error at ipakita ito sa screen sa pamamagitan ng Exception variable na “e”. Ang program na ito ay handa na para sa pagpapatupad sa shell.





Kaka-save lang namin ng aming java code file bago ito isagawa at ginamit ang java keyword na pagtuturo upang isagawa ang 'test.java' na file. Wala itong ibinabalik na kapalit. Gayundin, ang pagpapakita ng data ng isang text file na 'new.txt' sa shell gamit ang 'cat' na pagtuturo ay nagpakita ng isang halaga ng basura. Ito ay dahil, kadalasan, hindi nababasa ng java executor ang integer value mula sa file. Ngunit malamang, ipapakita nito ang eksaktong halaga ng integer.



Sa pagsuri sa new.txt file sa pamamagitan ng manu-manong pagbubukas nito, nakita namin na ang isang Unicode na format ng halaga ay ipinakita sa file.

Kung hindi mo maipakita ang integer value mula sa file stream, maaari mong gamitin ang writeObject() function sa java program sa halip na writeInt() function para isulat ang value na “d” sa file stream sa pamamagitan ng object na “o” gaya ng ipinapakita. Kasabay nito, kailangan mong itapon ang function na 'readObject()' sa halip na ang function na readInt() upang ipakita ang data mula sa stream ng input ng file.

Ang pag-update ng code na ito ay magpapakita ng integer na halaga sa pagpapatupad.

Halimbawa 02

Magkaroon tayo ng isa pang value ng java programming para iwaksi ang object input stream para sa string type value. Kaya, sinimulan namin ang halimbawang code na ito sa pag-import ng parehong FileInputStream, FileOutputStream, ObjectInputStream, at ObjectOutputStream na mga klase ng java mula sa “io” package ng java library. Ang Main class ay mayroong main() function para simulan ang pag-execute ng code na ito. Ang isang string variable na 'd2' ay sinisimulan na may mahabang string value.

Ang parehong try-catch statement ay na-castoff upang maiwasan ang error at para sa maayos na pagpapatupad ng java code na ito. Ang object na 'f' para sa file output stream ay ginawa sa pamamagitan ng FileOutputStream class na kumukuha ng 'new.txt' bilang argumento. Ang file output stream object 'f' ay naipasa sa output stream object 'o' na ginawa sa pamamagitan ng paggamit ng ObjectOutputStream class. Ngayon, ang output stream na 'o' ay tumatawag sa writeObject() function sa pamamagitan ng pagpasa nito ng string variable na 'd' na isusulat sa file na 'new.txt'.

Pagkatapos, gumawa ng stream ng input ng file na 'fs' gamit ang klase ng FileInputStream sa pamamagitan ng pagpasa dito ng pangalan ng file na 'new.txt,' ibig sabihin, para basahin ang data mula dito. Ngayon, ang object ng klase ng ObjectInputStream na 'os' ay gagamit ng file input stream object na 'fs' upang basahin ang data gamit ang readObject() function ng java sa 'println' execution statement ng 'System.out' class. Pagkatapos, malamang na isara natin ang mga input at output stream sa pamamagitan ng pagtawag sa function na 'close', at ginagamit ang catch statement upang makakuha ng anumang mga pagbubukod na nangyari sa bahagi ng pagsubok at maiwasan ang biglaang pagsasara ng pagpapatupad ng program na ito.

Ang execution ng java code file na ito at ang text file ay nagpakita ng string value sa console.

Konklusyon

Ang paggamit ng klase ng ObjectInputStream ay ang tanging paraan na magagamit para sa pagbabasa ng mga substance na gumagamit ng Serializable o Externalizable na protocol. Sa kabuuan, isinama namin ang lahat ng kinakailangang detalye para magamit ang objectinputstream class ng java upang basahin ang data mula sa file object input stream. Para dito, nag-cast kami ng dalawang magkaibang halimbawa ng java code dito. Ang unang halimbawa ay gumagamit ng integer type input variable value, habang ang pangalawang paglalarawan ay na-cast off ang string variable value, ibig sabihin, basahin mula sa input file stream.