कुछ परिदृश्यों में फ़ाइल की सामग्री को पढ़ते समय फ़ाइल के अंत तक पहुँच जाएगा ऐसे परिदृश्यों में एक EOFException को फेंक दिया जाता है।
विशेष रूप से, इनपुट स्ट्रीम ऑब्जेक्ट्स का उपयोग करके डेटा पढ़ते समय यह अपवाद फेंक दिया जाता है। अन्य परिदृश्यों में फ़ाइल के अंत तक पहुंचने पर एक विशिष्ट मान फेंक दिया जाएगा।
उदाहरण
आइए हम DataInputStream वर्ग पर विचार करें, यह आदिम मूल्यों को पढ़ने के लिए विभिन्न तरीके प्रदान करता है जैसे कि readboolean (), readByte (), readChar () आदि। फ़ाइल के अंत तक पहुंचने पर इन विधियों का उपयोग करके फ़ाइल से डेटा पढ़ते समय एक EOFException फेंक दिया जाता है।
आयात करें नया डेटा इनपुटस्ट्रीम (नया फ़ाइल इनपुटस्ट्रीम ("डी:\\ data.txt")); जबकि (सच) {चार च; ch =dis.readChar (); System.out.print(ch); } }}रनटाइम अपवाद
नमस्ते, आप कैसे हैं थ्रेड में अपवाद "मुख्य" java.io.EOFException java.io.DataInputStream.readChar (अज्ञात स्रोत) पर SEPTEMBER पर।EOFException को संभालना
आप DataInputStream . का उपयोग करके फ़ाइल के अंत तक पहुंचे बिना फ़ाइल की सामग्री को नहीं पढ़ सकते हैं कक्षा। यदि आप चाहें, तो आप InputStream इंटरफ़ेस के अन्य उपवर्गों का उपयोग कर सकते हैं।
उदाहरण
निम्नलिखित उदाहरण में हमने DataInputStream के बजाय FileInputStream क्लास का उपयोग करके उपरोक्त प्रोग्राम को फिर से लिखा है फ़ाइल से डेटा पढ़ने के लिए।
आयात करें args) अपवाद फेंकता है {// उपयोगकर्ता बाइट से डेटा पढ़ना [] buf ="हैलो हाउ आर यू"। getBytes (); // इसे DataOutputStream DataOutputStream dos =new DataOutputStream (नई FileOutputStream ("D:\\ data.txt")) का उपयोग करके फ़ाइल में लिखना; के लिए (बाइट बी:buf) {dos.writeChar (बी); } डॉस.फ्लश (); System.out.println ("डेटा सफलतापूर्वक लिखा गया"); }}
आउटपुट
डेटा सफलतापूर्वक लिखा गया
जावा में EOFException को संभालने का एक और तरीका निम्नलिखित है -
आयात करें =नया डेटा इनपुटस्ट्रीम (नया फ़ाइल इनपुटस्ट्रीम ("डी:\\ data.txt")); जबकि (सच) {चार च; कोशिश करें {ch =dis.readChar (); System.out.print(ch); } पकड़ें (EOFException e) { System.out.println (""); System.out.println ("फ़ाइल का अंत पहुंच गया"); टूटना; } कैच (IOException e) { } } }}आउटपुट
नमस्कार, आप कैसे हैं फाइल की समाप्ति पर पहुंच गए हैं