"வணக்கம், அமிகோ, மீண்டும் ஒருமுறை."

"உங்களுக்கு வணக்கம், ரிஷி. இன்றைய பாடம் என்னவாக இருக்கும்?"

"இன்று நான் உங்களுக்கு வாசகர் மற்றும் எழுத்தாளர் பற்றி சொல்லப் போகிறேன்."

"ஆனால், ரிஷி, அவர்களைப் பற்றி எனக்கு ஏற்கனவே தெரியும்!"

"மீண்டும் கூறுவது கற்றலின் தாய்."

"ம்ம். சரி, சரி."

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

"ஒன்று எழுத்துக்களுக்கானது, மற்றொன்று பைட்டுகளுக்கானது. எனக்கு நினைவிருக்கிறது."

"அது மட்டும் அல்ல. இந்த வகுப்புகள் உரை மற்றும் சரங்களுடன் பணிபுரியும் வகையில் சிறப்பாக வடிவமைக்கப்பட்டுள்ளன. இன்று நாம் இந்த சுருக்க வகுப்புகளின் இரண்டு உன்னதமான செயலாக்கங்களைப் பார்ப்போம்: FileReader மற்றும் FileWriter ."

" ஃபைல் ரீடர் வகுப்பின் முறைகள் இங்கே :"

முறை விளக்கம்
int read() ஸ்ட்ரீமில் இருந்து ஒரு எழுத்தைப் படித்து அதைத் திருப்பித் தருகிறது.
int read(char cbuf[], int offset, int length) எழுத்துக்களின் வரிசையைப் படிக்கிறது, படித்த எழுத்துக்களின் எண்ணிக்கையை வழங்குகிறது.
boolean ready() ஸ்ட்ரீமில் இருந்து படிக்க முடிந்தால் உண்மை என்று திரும்பும்.
void close() உள்ளீட்டு ஸ்ட்ரீமை மூடுகிறது.
int read(java.nio.CharBuffer target) எழுத்துகளின் தொகுப்பை இடையகமாகப் படிக்கவும்.
int read(char cbuf[]) எழுத்துக்களின் வரிசையைப் படிக்கிறது.
long skip(long n) ஸ்ட்ரீமில் n எழுத்துக்களைத் தவிர்க்கிறது.
String getEncoding() ஸ்ட்ரீமின் தற்போதைய குறியாக்கத்தை வழங்குகிறது.

"சரி, எனக்கு இதெல்லாம் கிட்டத்தட்ட தெரியும். ஆனால் ஃபைல்ரைட்டர் பற்றி என்ன?"

முறை விளக்கம்
void write(int c) ஸ்ட்ரீமில் ஒரு எழுத்தை எழுதுகிறார்.
void write(char cbuf[], int off, int len) ஸ்ட்ரீமில் எழுத்துக்களின் வரிசையை எழுதுகிறது.
void write(char cbuf[]) ஸ்ட்ரீமில் எழுத்துக்களின் வரிசையை எழுதுகிறது.
void write(String str, int off, int len) ஸ்ட்ரீமில் ஒரு சரத்தின் ஒரு பகுதியை எழுதுகிறது.
void write(String str) ஸ்ட்ரீமில் ஒரு சரத்தை எழுதுகிறார்.
void flush() நினைவகத்தில் சேமிக்கப்பட்ட அனைத்தையும் வட்டில் எழுதுகிறது.
void close() ஓடையை மூடுகிறது.
String getEncoding() ஸ்ட்ரீமின் தற்போதைய குறியாக்கத்தை வழங்குகிறது.

"எனக்கு தெரியும்!"

"அற்புதம். பிறகு ஒரு சுவாரஸ்யமான உதாரணத்தைப் பார்ப்போம், பின்னர் டியாகோ உங்களுக்கு அதிக பணிகளைத் தருவார்."

"கோப்பை வரி வரியாக எப்படிப் படிக்கிறீர்கள்? குறியீட்டை எழுத முடியுமா?"

"எளிதாக, பார்:"

குறியீடு
// Create a list for storing the lines
List<String> list = new ArrayList<String>();

// Open the file
File file = new File("c:/document.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));

// As long as the file isn't empty, read from it
while (reader.ready())
{
 list.add(reader.readLine());
}

// Close the file
reader.close();

"ம்ம். மோசமில்லை."

"மோசமில்லையா? எல்லாம் எளிமையாகவும் அழகாகவும் இருக்கிறது. ஒப்புக்கொள், ரிஷி—எனக்கு ஏற்கனவே I/O த்ரெட்களில் சிறந்த தேர்ச்சி உள்ளது. எனவே இங்கு என்ன மேம்படுத்தலாம்?"

"சரி, உதாரணமாக, நீங்கள் இதைச் செய்யலாம்:"

ரிஷியின் குறியீடு
File file = new File("c:/document.txt");

List list = Files.readAllLines(file.toPath(), Charset.defaultCharset());

"ஹ்ம்ம். அது குறுகியது. இன்றுதான் இந்த முறைகள் அனைத்தையும் பற்றி என்னிடம் சொன்னீர்கள். நான் அதை மீண்டும் செய்கிறேன். பாடத்திற்கு நன்றி, ரிஷி."

"நல்ல அதிர்ஷ்டம், அமிகோ."