BufferedReader क्यों
बफ़र सहित और बिना बफ़र के पठन
BufferedReader क्यों, CoddyKit पर Java Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Java Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Java में इनपुट पढ़ना
अधिकांश वास्तविक प्रोग्रामों को उपयोगकर्ता से इनपुट चाहिए: कोई नाम, संख्या या कमांड। Java में इनपुट पढ़ने के कई तरीके हैं, लेकिन सबसे सामान्य और कुशल तरीकों में से एक BufferedReader है।
इस पाठ में आप सीखेंगे कि BufferedReader क्यों मौजूद है और इसका उपयोग कब करना चाहिए।
इनपुट कहाँ से आता है
जब आप कंसोल में टाइप करते हैं, तो आपका पाठ System.in के माध्यम से आता है। यह निम्न-स्तरीय बाइट स्ट्रीम है — यह आपको सुविधाजनक पाठ नहीं, बल्कि कच्ची बाइटें देता है।
इन बाइटों को पढ़ने योग्य अक्षरों और पूरी पंक्तियों में बदलने के लिए, हम System.in को सहायक वर्गों में लपेटते हैं। BufferedReader ऐसा आवरण है जो यह काम आसान बनाता है।
‘बफ़र किया हुआ’ का अर्थ
कीबोर्ड या फ़ाइल से एक बार में एक बाइट पढ़ना धीमा होता है। बफ़र स्मृति का एक हिस्सा होता है, जिसमें एक साथ बहुत सारे अक्षर रखे जाते हैं।
BufferedReader इस बफ़र को बड़े हिस्सों में भरता है और फिर आपको डेटा तेज़ी से देता है। अंतर्निहित स्ट्रीम तक कम बार जाना पड़ता है, इसलिए प्रदर्शन बेहतर होता है, विशेषकर बड़े इनपुट के लिए।
दो-स्तरीय व्यवस्था
BufferedReader सीधे System.in को नहीं पढ़ सकता, क्योंकि वह स्ट्रीम बाइटें देती है। इसलिए पहले हम इसे InputStreamReader में लपेटते हैं, जो बाइटों को अक्षरों में बदलता है।
System.in→ बाइटेंInputStreamReader→ अक्षरBufferedReader→ बफ़र की गई पंक्तियाँ
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);प्रचलित एक-पंक्ति कथन
कंसोल इनपुट पढ़ने वाले लगभग हर Java प्रोग्राम में आपको यह ठीक यही पंक्ति दिखाई देगी। यह दोनों आवरणों को एक ही कथन में जोड़ती है।
याद रखें: अंदर का InputStreamReader बाइटों को अक्षरों में बदलता है, जबकि बाहर का BufferedReader बफ़रिंग के साथ सुविधाजनक readLine() विधि भी देता है।
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));आवश्यक इम्पोर्ट
ये वर्ग java.io पैकेज में रहते हैं, इसलिए आपको अपनी फ़ाइल की शुरुआत में इन्हें इम्पोर्ट करना होगा।
इनपुट पढ़ते समय त्रुटि हो सकती है, इसलिए विधियाँ IOException उत्पन्न करती हैं — आपको उसे भी इम्पोर्ट या संभालना होगा; इसके बारे में हम आगे सीखेंगे।
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;BufferedReader बनाम Scanner
शुरुआती विद्यार्थी अक्सर सबसे पहले Scanner से परिचित होते हैं। यह अधिक सुविधाजनक है (यह सीधे संख्याओं को पार्स कर सकता है), लेकिन धीमा है।
- Scanner: पार्स करना आसान, पर अतिरिक्त भार अधिक।
- BufferedReader: तेज़, पूरी पंक्तियाँ पढ़ता है, लेकिन संख्याओं को आपको स्वयं पार्स करना पड़ता है।
बड़े इनपुट या प्रतियोगी प्रोग्रामिंग के लिए गति के मामले में BufferedReader बेहतर है।
पूरी पंक्ति पढ़ना
इसकी सबसे महत्वपूर्ण विधि readLine() है। यह उपयोगकर्ता द्वारा Enter दबाने तक टाइप की गई हर चीज़ पढ़ती है और उसे String के रूप में लौटाती है (नई पंक्ति के बिना)।
यदि आगे कोई इनपुट नहीं है, तो readLine() null लौटाती है। हम अगले पाठ में इसका विस्तार से अध्ययन करेंगे।
String name = br.readLine();
System.out.println("Hello, " + name);एक पूरा पठन प्रोग्राम
यहाँ एक पूरा प्रोग्राम है। यह एक पंक्ति पढ़कर उपयोगकर्ता का अभिवादन करता है। ध्यान दें कि main पर throws IOException है — सीखते समय इनपुट की त्रुटियों को ऊपर तक पहुँचाने का यह एक त्वरित तरीका है।
यह अंश कीबोर्ड इनपुट की प्रतीक्षा करता है, इसलिए इसे यहाँ अपने-आप नहीं चलाया जा सकता, लेकिन यह मान्य Java है।
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String name = br.readLine();
System.out.println("Hi " + name);
}
}काम करने का प्रमाण देने के लिए इनपुट आवश्यक नहीं
यह देखने के लिए कि आवरण मौजूद हैं और संकलित होते हैं, यहाँ ऐसा चलने योग्य संस्करण है जो कुछ भी नहीं पढ़ता — यह केवल यह पुष्टि करता है कि वस्तु बनाई गई है।
वास्तविक ऐप में आप readLine() को कॉल करेंगे, लेकिन यह संस्करण एक संदेश प्रिंट करता है, ताकि आप इसे अभी चला सकें।
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("BufferedReader is ready!");
}
}BufferedReader का उपयोग कब करें
इन परिस्थितियों में BufferedReader का उपयोग करें:
- जब आपको बहुत सारी पंक्तियाँ या बड़ी फ़ाइलें पढ़नी हों,
- जब गति महत्वपूर्ण हो,
- जब आपको सरल पंक्ति-दर-पंक्ति पाठ चाहिए।
जब आपको संख्याओं को जल्दी पार्स करना हो और इनपुट छोटा हो, तब इसके बजाय Scanner का उपयोग करें। दोनों मान्य हैं — सही साधन चुनें।
त्वरित जाँच
BufferedReader की व्यवस्था के बारे में अपनी समझ जाँचें।
पुनरावलोकन
आपने सीखा कि System.in एक बाइट स्ट्रीम है, जिसे पहले InputStreamReader (बाइटों से अक्षरों में) और फिर BufferedReader (बफ़रिंग और readLine() के साथ) में लपेटा जाता है।
बफ़रिंग प्रदर्शन बढ़ाती है और बड़े या पंक्ति-आधारित इनपुट के लिए BufferedReader बहुत उपयोगी है। अगला विषय: पंक्तियों को विस्तार से पढ़ना।
एआई शिक्षक के साथ Java सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 104
- पाठ
- 374
अक्सर पूछे जाने वाले प्रश्न
क्या “BufferedReader क्यों” पाठ निःशुल्क है?
हाँ—“BufferedReader क्यों” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Java Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“BufferedReader क्यों” में मैं क्या सीखूँगा?
बफ़र सहित और बिना बफ़र के पठन आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Java Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Java Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Java Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“BufferedReader क्यों” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Java Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Java Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- BufferedReader क्यों
- पंक्तियाँ पढ़ना
- इनपुट से संख्याओं का पार्सिंग
- स्ट्रीम सुरक्षित रूप से बंद करना