बाहरी सिस्टम से इनपुट पढ़ने के लिए स्कैनर और बफर रीडर दोनों वर्गों का उपयोग किया जाता है। आमतौर पर स्कैनर का उपयोग तब किया जाता है जब हम जानते हैं कि इनपुट टाइप स्ट्रिंग या आदिम प्रकार का है और बफर रीडर का उपयोग कैरेक्टर स्ट्रीम से टेक्स्ट पढ़ने के लिए किया जाता है, जबकि कैरेक्टर के कुशल पढ़ने के लिए कैरेक्टर को बफर करते हुए। स्कैनर वर्ग और बफ़र रीडर वर्ग के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।
Sr. नहीं। वें> <वें शैली ="पाठ-संरेखण:केंद्र; चौड़ाई:10.2721%;">कुंजी वें> <वें शैली ="पाठ-संरेखण:केंद्र;">स्कैनर वर्ग वें> <वें शैली ="पाठ-संरेखण:केंद्र;">बफ़र रीडर वर्ग वें> | |||
---|---|---|---|
1 | तुल्यकालिक | स्कैनर प्रकृति में सिंक्रोनस नहीं है और इसका उपयोग केवल सिंगल थ्रेडेड केस में किया जाना चाहिए। | बफ़र रीडर प्रकृति में समकालिक है। मल्टीथ्रेडिंग वातावरण के दौरान, BufferReader का उपयोग किया जाना चाहिए। |
2 | बफर मेमोरी | स्कैनर में 1 केबी चार बफर का थोड़ा बफर है। | बफर रीडर में स्कैनर की तुलना में 8KB बाइट बफर का बड़ा बफर है। |
3 | प्रसंस्करण गति | स्कैनर थोड़ा धीमा है क्योंकि इसे डेटा को भी पार्स करने की आवश्यकता है। | बफ़र रीडर स्कैनर की तुलना में तेज़ है क्योंकि यह केवल एक वर्ण स्ट्रीम को पढ़ता है। |
4 | तरीके | स्कैनर में नेक्स्टइंट (), नेक्स्टशॉर्ट () आदि जैसे तरीके हैं। | BufferReader में parseInt (), parseShort () आदि जैसे तरीके हैं। |
5 | पंक्ति पढ़ें | स्कैनर के पास एक लाइन को पढ़ने के लिए नेक्स्टलाइन () मेथड है। | BufferReader में एक पंक्ति पढ़ने के लिए विधि readLine () है। |
स्कैनर बनाम बफ़र रीडर का उदाहरण
JavaTester.java
आयात करें BufferedReader बफ़ररीडर =नया BufferedReader (नया InputStreamReader (System.in)); System.out.println ("एक नंबर दर्ज करें:"); int a =Integer.parseInt(bufferReader.readLine ()); System.out.printf ("आपने दर्ज किया:" + ए); स्कैनर स्कैनर =नया स्कैनर (System.in); System.out.println ("\ n एक नंबर दर्ज करें:"); ए =स्कैनर। अगलाइंट (); System.out.printf ("आपने दर्ज किया:" + ए); }}आउटपुट
नंबर दर्ज करें:1आपने दर्ज किया:1नंबर दर्ज करें:2आपने दर्ज किया:2