"हैलो, अमीगो! आप लंबे समय से बफ़रेडरीडर और इनपुटस्ट्रीमरीडर कक्षाओं का उपयोग कर रहे हैं। अब आइए देखें कि वे वास्तव में क्या करते हैं।"

InputStreamReader वर्ग InputStream इंटरफ़ेस से रीडर इंटरफ़ेस के लिए एक क्लासिक एडेप्टर है । यहां जोड़ने के लिए भी कुछ नहीं है।

लेकिन संक्षेप में यही होता है। जब आप एक InputStreamReader ऑब्जेक्ट से अगले वर्ण का अनुरोध करते हैं (पढ़ते हैं) , तो यह InputStream से कुछ बाइट्स को कंस्ट्रक्टर को पास करता है, और उन्हें एक चार के रूप में लौटाता है।

लेकिन काम करने के लिए रीडर सबसे सुविधाजनक वस्तु नहीं है। अक्सर हमें उपयोगकर्ता द्वारा दर्ज किए गए सभी वर्णों को एक साथ पढ़ने की नहीं, बल्कि इन वर्णों को पंक्तियों में विभाजित करने की आवश्यकता होती है।

"लेकिन पाठक वर्ग के पास एक पठन (CharBuffer s) विधि है। क्या हम उसका उपयोग नहीं कर सकते?"

"यह विधि डेटा को बफ़र के आकार में पढ़ती है और उन्हें चारबफ़र ऑब्जेक्ट में रखती है।"

पाठ को आमतौर पर पंक्तियों में विभाजित किया जाता है। तो पढ़ें (CharBuffer s) विधि एक साथ कई पंक्तियां पढ़ सकती है। यदि हमें एक पंक्ति के अंत तक पाठ को पढ़ने की आवश्यकता है (अर्थात एक पंक्ति में सभी वर्ण एक नई पंक्ति के वर्ण तक), तो कुछ और देखना बेहतर होगा। और एक वैकल्पिक तरीका मौजूद है। बफ़रेडरीडर वर्ग में ।

BufferedReader वर्ग, जो Reader के शीर्ष पर एक सुविधाजनक संरचना है, की एक बहुत ही सुविधाजनक विधि है: readLine() । यह विधि हमें पाठक से टेक्स्ट की पूरी पंक्तियां एक बार में पढ़ने देती है। जब आप अपने कोड में रीडलाइन को कॉल करते हैं, तो यह रीडर ऑब्जेक्ट के वर्णों को तब तक पढ़ता है जब तक कि यह एक न्यूलाइन कैरेक्टर का सामना नहीं करता। एक बार न्यूलाइन वर्ण का सामना करने के बाद, विधि इन वर्णों को एक साथ एक स्ट्रिंग में चिपका देती है और इसे वापस कर देती है।

"मैंने इसे नियमित रूप से इस्तेमाल किया है, लेकिन मुझे नहीं पता था कि यह कैसे काम करता है। अब मुझे पता है। धन्यवाद, किम।"