"ஹலோ, அமிகோ! நீங்கள் நீண்ட காலமாக BufferedReader மற்றும் InputStreamReader வகுப்புகளைப் பயன்படுத்துகிறீர்கள் . இப்போது அவர்கள் உண்மையில் என்ன செய்கிறார்கள் என்பதை ஆராய்வோம்."

InputStreamReader வகுப்பு என்பது InputStream இடைமுகத்திலிருந்து ரீடர் இடைமுகத்திற்கு ஒரு உன்னதமான அடாப்டர் ஆகும் . இங்கேயும் சேர்க்க எதுவும் இல்லை.

ஆனால் சுருக்கமாக, இதுதான் நடக்கும். InputStreamReader ஆப்ஜெக்ட்டிலிருந்து அடுத்த எழுத்தைக் கோரும்போது (படிக்க) , அது InputStream இலிருந்து சில பைட்டுகளை கன்ஸ்ட்ரக்டருக்கு அனுப்புகிறது, மேலும் அவற்றை ஒரு எழுத்தாகத் திருப்பியளிக்கிறது.

ஆனால் ரீடர் வேலை செய்ய மிகவும் வசதியான பொருள் அல்ல. பெரும்பாலும் நமக்குத் தேவைப்படுவது பயனர் உள்ளிடும் அனைத்து எழுத்துக்களையும் ஒரே நேரத்தில் படிப்பது அல்ல, மாறாக இந்த எழுத்துக்களை வரிகளாகப் பிரிப்பதுதான்.

"ஆனால் ரீடர் வகுப்பில் படிக்கும் (CharBuffer s) முறை உள்ளது. அதை நாம் பயன்படுத்த முடியாதா?"

"இந்த முறை இடையகத்தின் அளவை துகள்களில் தரவைப் படித்து அவற்றை CharBuffer பொருளில் வைக்கிறது."

உரை பொதுவாக வரிகளாக பிரிக்கப்படுகிறது. எனவே ரீட்(CharBuffer s) முறை பல வரிகளை ஒரே நேரத்தில் படிக்கலாம். ஒரு வரியின் இறுதி வரை (அதாவது ஒரு வரியில் உள்ள அனைத்து எழுத்துக்களும் ஒரு புதிய வரி எழுத்து வரை) சரியாகப் படிக்க வேண்டும் என்றால், வேறு ஏதாவது ஒன்றைத் தேடுவது நல்லது. மற்றும் ஒரு மாற்று முறை உள்ளது. BufferedReader வகுப்பில் .

ரீடரின் மேல் ஒரு வசதியான கட்டமைப்பான BufferedReader வகுப்பு, மிகவும் வசதியான ஒரு முறையைக் கொண்டுள்ளது: readLine () . இந்த முறையானது ஒரு ரீடரின் உரையின் முழு வரிகளையும் ஒருமுறை படிக்க அனுமதிக்கிறது. உங்கள் குறியீட்டில் ரீட்லைனை அழைக்கும் போது, ​​அது புதிய வரி எழுத்தை எதிர்கொள்ளும் வரை ரீடர் பொருளிலிருந்து எழுத்துக்களைப் படிக்கும். புதிய வரி எழுத்தை எதிர்கொண்டதும், முறையானது இந்த எழுத்துக்களை ஒரு சரத்தில் ஒன்றாக இணைத்து அதைத் திருப்பித் தருகிறது.

"நான் இதை வழக்கமாகப் பயன்படுத்துகிறேன், ஆனால் இது எப்படி வேலை செய்கிறது என்று எனக்குத் தெரியவில்லை. இப்போது எனக்குத் தெரியும். நன்றி, கிம்."