अस्वीकरण: मैंने उन सभी प्रश्नों को देखा है जिन्हें मैं पा सकता हूं और उनमें से कोई भी इस सटीक प्रश्न का उत्तर नहीं देता है। यदि आपको कोई मिलता है तो कृपया मुझे इंगित करें और विनम्र रहें।स्कैनर के साथ फ़ाइल या फ़ाइल रीडर का उपयोग करें?
new Scanner(BufferedReader(FileReader("xanadu.txt")));
लेकिन Javadoc इस तरह स्कैनर के साथ एक पाठ फ़ाइल को खोलता है:
तो, Oracle I/O tutorial इस प्रकार स्कैनर के साथ एक पाठ फ़ाइल को खोलता है
new Scanner(new File("myNumbers"));
यह उपयोग करने के लिए अच्छा होगा सरल तरीका, विशेष रूप से जब मेरे पास एक छोटी फ़ाइल होती है और छोटे बफर के साथ रह सकती है, लेकिन मैंने लोगों को यह भी देखा है कि जब आप सीधे फ़ाइल खोलते हैं तो can't close it। यदि ऐसा है, तो आधिकारिक दस्तावेज़ीकरण में वह मुहावरे क्यों उपयोग किया जाता है?
संपादित करें: मैंने new Scanner(FileReader("blah.txt"));
भी देखा है लेकिन यह दोनों दुनिया के सबसे खराब की तरह लगता है।
संपादित करें: मैं स्कैनर का उपयोग करने के बारे में बहस शुरू करने की कोशिश नहीं कर रहा हूं या नहीं। मेरे पास स्कैनर का उपयोग करने के बारे में एक सवाल है। धन्यवाद।
जैसा कि @ ट्यूडर ने इंगित किया है, फ़ाइल बंद नहीं है() - क्या आप इस तरह स्कैनर का उपयोग करते समय वास्तविक फ़ाइल बंद करते हैं, या संसाधन लटका हुआ है? – orbfish
हां, यदि आप स्कैनर कन्स्ट्रक्टर में फ़ाइल पास करते हैं तो इसका उपयोग स्ट्रीम खोलने के लिए किया जाता है जो Scanner.close() विधि को कॉल करने पर बंद हो जाएगा। कोई फर्क नहीं पड़ता कि आप किस कंस्ट्रक्टर का उपयोग करते हैं यदि आप करीबी() को ठीक से कॉल करते हैं (उदाहरण के लिए प्रयास करें/अंत में) तो यह ठीक से बंद हो जाएगा। – maximdim