"হ্যালো, অ্যামিগো! আপনি দীর্ঘদিন ধরে বাফারডরিডার এবং ইনপুটস্ট্রিমরিডার ক্লাসগুলি ব্যবহার করছেন ৷ এখন আসুন তারা আসলে কী করে তা অন্বেষণ করি।"

InputStreamReader ক্লাস হল ইনপুটস্ট্রিম ইন্টারফেস থেকে রিডার ইন্টারফেসে একটি ক্লাসিক অ্যাডাপ্টার এখানে যোগ করার কিছু নেই।

কিন্তু সংক্ষেপে, এই কি হয়. আপনি যখন একটি InputStreamReader অবজেক্ট থেকে পরবর্তী অক্ষরটির জন্য অনুরোধ (পড়ুন) করেন , তখন এটি কনস্ট্রাক্টরের কাছে পাঠানো ইনপুটস্ট্রিম থেকে কয়েকটি বাইট পড়ে এবং সেগুলিকে একটি অক্ষর হিসাবে ফেরত দেয়।

কিন্তু রিডার কাজ করার জন্য সবচেয়ে সুবিধাজনক বস্তু নয়। প্রায়শই আমাদের যা প্রয়োজন তা হল ব্যবহারকারীর দ্বারা প্রবেশ করা সমস্ত অক্ষরগুলি একবারে পড়া নয়, বরং এই অক্ষরগুলিকে লাইনে বিভক্ত করা।

"কিন্তু রিডার ক্লাসের একটি রিড (চারবাফার) পদ্ধতি আছে। আমরা কি এটি ব্যবহার করতে পারি না?"

"এই পদ্ধতিটি বাফারের আকারের অংশে ডেটা পড়ে এবং সেগুলিকে CharBuffer অবজেক্টে রাখে।"

পাঠ্য সাধারণত লাইনে বিভক্ত হয়। সুতরাং read(CharBuffer s) পদ্ধতিটি একসাথে বেশ কয়েকটি লাইন পড়তে পারে। যদি আমাদের একটি লাইনের শেষ পর্যন্ত পাঠ্য পড়তে হয় (অর্থাৎ একটি লাইনের সমস্ত অক্ষর একটি নতুন লাইনের অক্ষর পর্যন্ত), অন্য কিছু সন্ধান করা ভাল হবে। এবং একটি বিকল্প পদ্ধতি বিদ্যমান। বাফারডরিডার ক্লাসে ।

BufferedReader ক্লাস, যা Reader-এর উপরে একটি সুবিধাজনক কাঠামো, এর একটি খুব সুবিধাজনক পদ্ধতি রয়েছে: readLine () । এই পদ্ধতিটি আমাদের পাঠকের কাছ থেকে একবারে পাঠ্যের পুরো লাইন পড়তে দেয়। আপনি যখন আপনার কোডে রিডলাইন কল করেন, তখন এটি রিডার অবজেক্ট থেকে অক্ষর পড়ে যতক্ষণ না এটি একটি নতুন লাইনের অক্ষরের মুখোমুখি হয়। একবার নতুন লাইনের অক্ষরটির সম্মুখীন হলে, পদ্ধতিটি এই অক্ষরগুলিকে একক স্ট্রিংয়ে একত্রিত করে এবং এটি ফেরত দেয়।

"আমি এটি নিয়মিত ব্যবহার করেছি, কিন্তু আমি জানতাম না এটি কিভাবে কাজ করে। এখন আমি জানি। ধন্যবাদ, কিম।"