मुख्य अंतर:
- चित्रान्वीक्षक
- एक साधारण पाठ स्कैनर जो नियमित भावों का उपयोग करके आदिम प्रकारों और तारों को पार्स कर सकता है।
- एक स्कैनर एक सीमांकक पैटर्न का उपयोग करके अपने इनपुट को टोकन में तोड़ देता है, जो डिफ़ॉल्ट रूप से व्हाट्सएप से मेल खाता है। परिणामी टोकन को तब विभिन्न तरीकों के मूल्यों में परिवर्तित किया जा सकता है।
उदाहरण
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();
निम्नलिखित आउटपुट प्रिंट करता है:
1
2
red
blue
इस कोड के साथ एक ही आउटपुट उत्पन्न किया जा सकता है, जो एक बार में सभी चार टोकन पार्स करने के लिए एक नियमित अभिव्यक्ति का उपयोग करता है:
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input);
s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
MatchResult result = s.match();
for (int i=1; i<=result.groupCount(); i++)
System.out.println(result.group(i));
s.close(); `
BufferedReader:
एक चरित्र-इनपुट स्ट्रीम से पाठ पढ़ता है, वर्णों को बफ़र करता है ताकि वर्णों, सरणियों और रेखाओं के कुशल पढ़ने के लिए प्रदान किया जा सके।
बफर आकार निर्दिष्ट किया जा सकता है, या डिफ़ॉल्ट आकार का उपयोग किया जा सकता है। अधिकांश उद्देश्यों के लिए डिफ़ॉल्ट काफी बड़ा है।
सामान्य तौर पर, रीडर से बना प्रत्येक रीड रिक्वेस्ट अंतर्निहित चरित्र या बाइट स्ट्रीम से संबंधित रीड रिक्वेस्ट का कारण बनता है। इसलिए यह सलाह दी जाती है कि किसी भी रीडर के चारों ओर एक बफ़ररेडर लपेटा जाए जिसका रीड () संचालन महंगा हो सकता है, जैसे कि फाइलराइडर्स और इनपुटस्ट्रीमरीडर्स। उदाहरण के लिए,
BufferedReader in
= new BufferedReader(new FileReader("foo.in"));
निर्दिष्ट फ़ाइल से इनपुट को बफ़र करेगा। बफरिंग के बिना, रीड () या रीडलाइन () के प्रत्येक इनवोकेशन से बाइट्स को फ़ाइल से पढ़ा जा सकता है, वर्णों में परिवर्तित किया जा सकता है, और फिर वापस लौटाया जा सकता है, जो बहुत अक्षम हो सकता है। प्रोग्राम जो पाठ इनपुट के लिए DataInputStreams का उपयोग करते हैं, उन्हें प्रत्येक DataInputStream को एक उपयुक्त बफ़रडर के साथ बदलकर स्थानीयकृत किया जा सकता है।
स्रोत: लिंक