జావా ఆబ్జెక్ట్‌ఇన్‌పుట్ స్ట్రీమ్

Java Abjekt In Put Strim



“ObjectOutputStream యొక్క ఆబ్జెక్ట్ ద్వారా వ్రాసిన సమాచారం ప్రధానంగా ObjectInputStream తరగతిని ఉపయోగించి యాక్సెస్ చేయబడుతుంది. ObjectInputStream తరగతి యొక్క ప్రధాన లక్ష్యం ObjectOutputStream తరగతిని ఉపయోగించడం ద్వారా ఉత్పత్తి చేయబడిన ప్రాథమిక డేటా మరియు ఎంటిటీలను పునర్నిర్మించడం. SocketStreamని ఉపయోగించడం ద్వారా, ObjectInputStream వివిధ హోస్ట్‌లలో వస్తువులను బదిలీ చేయడానికి కూడా ఉపయోగించబడవచ్చు. అందువల్ల, ఫైల్ ఇన్‌పుట్ స్ట్రీమ్ నుండి డేటాను చదవడానికి ఆబ్జెక్ట్‌ఇన్‌పుట్‌స్ట్రీమ్ క్లాస్ ఆబ్జెక్ట్‌ను ప్రసారం చేయడానికి మా ఉబుంటు 20.04 సిస్టమ్‌కు సహాయక గైడ్‌ను వ్రాయాలని మేము నిర్ణయించుకున్నాము. కన్సోల్ తెరవడంతో ప్రారంభిద్దాం.'

ఉదాహరణ 01

మా కథనం యొక్క మొదటి ఉదాహరణను ప్రారంభించి, మేము 'test.java' అనే కొత్త జావా ఫైల్‌ని సృష్టిస్తున్నాము. ఆ తర్వాత, మేము అదే ఫోల్డర్‌లో టెక్స్ట్ ఫైల్‌ను కూడా రూపొందించాము.







జావా ప్రోగ్రామ్‌లో ఇన్‌పుట్ స్ట్రీమ్ యొక్క ఆబ్జెక్ట్‌లను చదవడానికి, మేము అవుట్‌పుట్ స్ట్రీమ్‌ను దిగుమతి చేసుకోవాలి. కాబట్టి, మేము ప్రారంభంలో “java.io.ObjectInputStream” మరియు “java.io.ObjectOutputStream” ప్యాకేజీలను దిగుమతి చేస్తున్నాము. దానితో పాటు, డేటాను ఫైల్‌లోకి చొప్పించడానికి, మనం “java.io.FileInputStream” మరియు “java.io.FileInputStream”ని దిగుమతి చేసుకోవాలి. మేము ఒకే ప్రధాన() ఫంక్షన్‌ని కలిగి ఉన్న “మెయిన్” తరగతిని సృష్టించాము.



పూర్ణాంక వేరియబుల్ “d” డిక్లరేషన్ నుండి ఫంక్షన్ ఎగ్జిక్యూషన్ ప్రారంభమవుతుంది. ఎర్రర్‌ల కారణంగా ప్రోగ్రామ్ ఆకస్మికంగా నిష్క్రమించడాన్ని నివారించడానికి, మేము జావా యొక్క ట్రై-క్యాచ్ స్టేట్‌మెంట్‌ను జోడించాము. ఫైల్ అవుట్‌పుట్ స్ట్రీమ్ క్లాస్ ద్వారా ఫైల్ అవుట్‌పుట్ స్ట్రీమ్ ఆబ్జెక్ట్ “ఎఫ్”ని ప్రారంభించడంతో “ప్రయత్నించండి” భాగం ప్రారంభమవుతుంది. మేము 'new.txt' ఫైల్ పేరును ఈ ఆబ్జెక్ట్ 'f'కి పంపాము. మేము ఆబ్జెక్ట్ అవుట్‌పుట్ స్ట్రీమ్ “o”ని సృష్టించాము మరియు ఫైల్‌ను అవుట్‌పుట్ స్ట్రీమ్‌గా చేయడానికి ఆబ్జెక్ట్ అవుట్‌పుట్ స్ట్రీమ్ క్లాస్‌కి ఫైల్ ఆబ్జెక్ట్ “f”ని పాస్ చేసాము.



తదుపరి పంక్తిలో, మేము జావా అవుట్‌పుట్ స్ట్రీమ్ యొక్క రైట్‌ఇంట్() ఫంక్షన్‌ను అవుట్‌పుట్ స్ట్రీమ్ ఆబ్జెక్ట్ “o” ద్వారా పూర్ణాంక వేరియబుల్ “d,” అంటే ఫైల్‌లో సేవ్ చేయడానికి కాల్ చేస్తున్నాము. లైన్ 12లో, 'new.txt' ఫైల్‌ను పాస్ చేయడం ద్వారా జావా యొక్క FileInputStream తరగతిని ఉపయోగించి మేము ఫైల్ ఇన్‌పుట్ స్ట్రీమ్ “fs”ని సృష్టించాము, అంటే, అందులో ఇప్పటికే డేటా ఉంది. ఈ ఫైల్ ఇన్‌పుట్ స్ట్రీమ్ ఆబ్జెక్ట్ “fs” ఫైల్ స్ట్రీమ్ నుండి చదవడాన్ని ప్రారంభించడానికి ObjectInputStream క్లాస్ యొక్క కొత్తగా రూపొందించబడిన ఆబ్జెక్ట్ “os”కి పంపబడింది. new.txt ఫైల్ నుండి డేటాను ప్రదర్శించడానికి ఆబ్జెక్ట్ ఇన్‌పుట్ స్ట్రీమ్ ఆబ్జెక్ట్ “os” ద్వారా readInt() ఫంక్షన్‌ని కాల్ చేయడానికి java యొక్క “System.out” ప్యాకేజీ నుండి println() ఫంక్షన్ కాస్టాఫ్ చేయబడింది. ఆ తర్వాత, మేము javaలో ఫైల్ హ్యాండ్లింగ్ యొక్క “క్లోజ్” ఫంక్షన్‌ని ఉపయోగించి వాటి సంబంధిత వస్తువులు “o” మరియు “os” ఉపయోగించి అవుట్‌పుట్ స్ట్రీమ్ మరియు ఇన్‌పుట్ స్ట్రీమ్‌ను మూసివేస్తున్నాము. స్ట్రీమ్‌లను మూసివేయడానికి ఇది అవసరమైన దశ, తద్వారా ఇతర వినియోగదారు ఫైల్ నుండి డేటాను ఇన్‌పుట్ చేయలేరు లేదా అవుట్‌పుట్ చేయలేరు. క్యాచ్() స్టేట్‌మెంట్‌లో, మేము ఒక దోషాన్ని పొందడానికి getStackTrace() ఫంక్షన్‌ని ఉపయోగిస్తున్నాము మరియు దానిని మినహాయింపు వేరియబుల్ “e” ద్వారా స్క్రీన్‌పై ప్రదర్శిస్తాము. ఈ ప్రోగ్రామ్ షెల్‌లో అమలు చేయడానికి సిద్ధంగా ఉంది.





మేము మా జావా కోడ్ ఫైల్‌ను అమలు చేయడానికి ముందు సేవ్ చేసాము మరియు “test.java” ఫైల్‌ను అమలు చేయడానికి జావా కీవర్డ్ సూచనలను ఉపయోగించాము. ఇది ప్రతిఫలంగా ఏమీ తిరిగి ఇవ్వదు. అలాగే, “క్యాట్” సూచనను ఉపయోగించి షెల్‌పై “new.txt” టెక్స్ట్ ఫైల్ డేటాను ప్రదర్శించడం వల్ల చెత్త విలువ ప్రదర్శించబడుతుంది. ఎందుకంటే, ఎక్కువ సమయం, java ఎగ్జిక్యూటర్ ఫైల్ నుండి పూర్ణాంక విలువను చదవలేకపోతుంది. కానీ చాలా బహుశా, ఇది ఖచ్చితమైన పూర్ణాంక విలువను ప్రదర్శిస్తుంది.



new.txt ఫైల్‌ని మాన్యువల్‌గా తెరవడం ద్వారా దాన్ని తనిఖీ చేసినప్పుడు, ఫైల్‌లో విలువ యొక్క యూనికోడ్ ఫార్మాట్ చూపబడిందని మేము చూశాము.

మీరు ఫైల్ స్ట్రీమ్ నుండి పూర్ణాంక విలువను ప్రదర్శించలేకపోతే, ఆబ్జెక్ట్ “o” ద్వారా ఫైల్ స్ట్రీమ్‌కు “d” విలువను వ్రాయడానికి మీరు రైట్ఇంట్() ఫంక్షన్‌కు బదులుగా జావా ప్రోగ్రామ్‌లో రైట్‌ఆబ్జెక్ట్() ఫంక్షన్‌ని ఉపయోగించవచ్చు. ప్రదర్శించబడుతుంది. దానితో పాటు, ఫైల్ ఇన్‌పుట్ స్ట్రీమ్ నుండి డేటాను ప్రదర్శించడానికి మీరు readInt() ఫంక్షన్‌కు బదులుగా “readObject()” ఫంక్షన్‌ను ప్రసారం చేయాలి.

ఈ కోడ్‌ని నవీకరిస్తే అమలులో పూర్ణాంకం విలువ ప్రదర్శించబడుతుంది.

ఉదాహరణ 02

స్ట్రింగ్ రకం విలువ కోసం ఆబ్జెక్ట్ ఇన్‌పుట్ స్ట్రీమ్‌ను ప్రసారం చేయడానికి జావా ప్రోగ్రామింగ్ యొక్క మరొక విలువను కలిగి ఉండండి. కాబట్టి, మేము జావా లైబ్రరీ యొక్క “io” ప్యాకేజీ నుండి జావా యొక్క అదే FileInputStream, FileOutputStream, ObjectInputStream మరియు ObjectOutputStream తరగతుల దిగుమతితో ఈ ఉదాహరణ కోడ్‌ని ప్రారంభించాము. ఈ కోడ్‌ని అమలు చేయడం ప్రారంభించడానికి ప్రధాన తరగతి దాని ప్రధాన() ఫంక్షన్‌ను కలిగి ఉంది. స్ట్రింగ్ వేరియబుల్ “d2” లాంగ్ స్ట్రింగ్ విలువతో ప్రారంభించబడింది.

లోపాన్ని నివారించడానికి మరియు ఈ జావా కోడ్‌ని సజావుగా అమలు చేయడానికి అదే ట్రై-క్యాచ్ స్టేట్‌మెంట్ కాస్టాఫ్ చేయబడింది. ఫైల్ అవుట్‌పుట్ స్ట్రీమ్ కోసం ఆబ్జెక్ట్ “f” ఫైల్‌అవుట్‌పుట్‌స్ట్రీమ్ క్లాస్ ద్వారా “new.txt”ని ఆర్గ్యుమెంట్‌గా తీసుకొని సృష్టించబడింది. ఫైల్ అవుట్‌పుట్ స్ట్రీమ్ ఆబ్జెక్ట్ “f” అనేది ObjectOutputStream క్లాస్ ఉపయోగించడం ద్వారా సృష్టించబడిన అవుట్‌పుట్ స్ట్రీమ్ ఆబ్జెక్ట్ “o”కి పంపబడింది. ఇప్పుడు, అవుట్‌పుట్ స్ట్రీమ్ “o” రైట్‌ఆబ్జెక్ట్() ఫంక్షన్‌ని “new.txt” ఫైల్‌లో వ్రాయడానికి స్ట్రింగ్ వేరియబుల్ “d”ని పాస్ చేయడం ద్వారా కాల్ చేస్తోంది.

ఆపై, ఫైల్ ఇన్‌పుట్ స్ట్రీమ్ “fs”ని ఫైల్ ఇన్‌పుట్ స్ట్రీమ్ క్లాస్‌ని ఉపయోగించి “new.txt” అనే ఫైల్ పేరును పాస్ చేయడం ద్వారా దాని నుండి డేటాను చదవడానికి సృష్టించింది. ఇప్పుడు, ObjectInputStream క్లాస్ ఆబ్జెక్ట్ “os” “System.out” క్లాస్ యొక్క “println” ఎగ్జిక్యూషన్ స్టేట్‌మెంట్‌లోని జావా యొక్క readObject() ఫంక్షన్‌ని ఉపయోగించి డేటాను చదవడానికి ఫైల్ ఇన్‌పుట్ స్ట్రీమ్ ఆబ్జెక్ట్ “fs”ని ఉపయోగిస్తుంది. అప్పుడు, మేము 'క్లోజ్' ఫంక్షన్‌కి కాల్ చేయడం ద్వారా ఇన్‌పుట్ మరియు అవుట్‌పుట్ స్ట్రీమ్‌లను మూసివేస్తాము మరియు క్యాచ్ స్టేట్‌మెంట్ ట్రై పార్ట్‌లో జరిగిన ఏవైనా మినహాయింపులను పొందడానికి మరియు ఈ ప్రోగ్రామ్ ఎగ్జిక్యూషన్ ఆకస్మికంగా మూసివేయడాన్ని నివారించడానికి ఉపయోగించబడుతుంది.

ఈ జావా కోడ్ ఫైల్ మరియు టెక్స్ట్ ఫైల్ యొక్క అమలు కన్సోల్‌లో స్ట్రింగ్ విలువను ప్రదర్శిస్తుంది.

ముగింపు

ఆబ్జెక్ట్‌ఇన్‌పుట్‌స్ట్రీమ్ క్లాస్‌ని ఉపయోగించడం అనేది సీరియలైజ్ చేయదగిన లేదా ఎక్స్‌టర్నలైజబుల్ ప్రోటోకాల్‌ను ఉపయోగించే పదార్థాలను చదవడానికి అందుబాటులో ఉన్న ఏకైక పద్ధతి. మొత్తానికి, ఫైల్ ఆబ్జెక్ట్ ఇన్‌పుట్ స్ట్రీమ్ నుండి డేటాను చదవడానికి java యొక్క ఆబ్జెక్ట్‌ఇన్‌పుట్‌స్ట్రీమ్ క్లాస్‌ని ఉపయోగించుకోవడానికి అవసరమైన అన్ని వివరాలను మేము చేర్చాము. దీని కోసం, మేము ఇక్కడ రెండు వేర్వేరు జావా కోడ్ ఉదాహరణలను ప్రసారం చేస్తున్నాము. మొదటి ఉదాహరణ పూర్ణాంక రకం ఇన్‌పుట్ వేరియబుల్ విలువను ఉపయోగిస్తుంది, రెండవ ఉదాహరణ స్ట్రింగ్ వేరియబుల్ విలువను ప్రసారం చేస్తుంది, అనగా ఇన్‌పుట్ ఫైల్ స్ట్రీమ్ నుండి చదవబడుతుంది.