BufferedReader এবং BufferedWriter হল Java I/O প্যাকেজের ক্লাস যা ফাইল বা স্ট্রিম থেকে লাইনের আকারে ডেটা পড়া এবং লাইনের আকারে ডেটা লেখা করার জন্য ব্যবহৃত হয়। এগুলি সাধারণ Reader এবং Writer ক্লাসের একটি বাফারড ভার্সন, যা performance improvement জন্য ব্যবহৃত হয়।
- BufferedReader: এটি character streams এর অংশ এবং input stream থেকে line-by-line ডেটা পড়তে ব্যবহৃত হয়। এটি
readLine()মেথড ব্যবহার করে একটি লাইনে একসাথে ডেটা পড়ে। - BufferedWriter: এটি character streams এর অংশ এবং output stream এ line-by-line ডেটা লেখার জন্য ব্যবহৃত হয়। এটি
newLine()মেথড ব্যবহার করে একটি নতুন লাইন সন্নিবেশ করে এবংwrite()মেথড দ্বারা ডেটা লেখে।
BufferedReader এবং BufferedWriter এর সুবিধা:
- Performance Improvement:
- BufferedReader এবং BufferedWriter বাফার ব্যবহার করে ডেটা পড়া এবং লেখা দ্রুত করে, কারণ একে একে ক্যারেক্টার পড়ার পরিবর্তে এটি একটি বড় ব্লক পড়ে এবং লেখে।
- Line-by-Line Read/Write:
- লাইনের আকারে ডেটা পড়া এবং লেখা সহজ করে তোলে।
- Efficiency:
- ছোট ছোট I/O অপারেশনের পরিবর্তে একটি বড় অপারেশন করার কারণে কার্যকারিতা বাড়ায়।
BufferedReader এবং BufferedWriter এর উদাহরণ
1. BufferedReader ব্যবহার করে ফাইল থেকে লাইন বাই লাইন ডেটা পড়া
import java.io.*;
public class BufferedReaderExample {
public static void main(String[] args) {
String fileName = "input.txt"; // ফাইলের নাম
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line); // প্রতিটি লাইন প্রিন্ট করা
}
} catch (IOException e) {
System.out.println("An error occurred while reading the file.");
e.printStackTrace();
}
}
}
ব্যাখ্যা:
- BufferedReader ফাইলের প্রতিটি লাইন পড়ে এবং
readLine()মেথড ব্যবহার করে সেটি একে একে আউটপুটে প্রিন্ট করে। - try-with-resources ব্যবহৃত হয়েছে, যা নিশ্চিত করে যে BufferedReader স্বয়ংক্রিয়ভাবে বন্ধ হবে।
আউটপুট:
This is the first line of the file.
This is the second line of the file.
This is the third line of the file.
2. BufferedWriter ব্যবহার করে ফাইলের মধ্যে লাইন বাই লাইন ডেটা লেখা
import java.io.*;
public class BufferedWriterExample {
public static void main(String[] args) {
String fileName = "output.txt"; // আউটপুট ফাইলের নাম
try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) {
writer.write("This is the first line of the file.");
writer.newLine(); // নতুন লাইন যোগ করা
writer.write("This is the second line of the file.");
writer.newLine();
writer.write("This is the third line of the file.");
writer.newLine();
System.out.println("Data written to " + fileName + " successfully.");
} catch (IOException e) {
System.out.println("An error occurred while writing to the file.");
e.printStackTrace();
}
}
}
ব্যাখ্যা:
- BufferedWriter ব্যবহার করে write() মেথডের মাধ্যমে ফাইলের মধ্যে line-by-line ডেটা লেখা হচ্ছে।
- newLine() মেথডটি ব্যবহার করা হয়েছে নতুন লাইন সন্নিবেশ করার জন্য।
আউটপুট:
Data written to output.txt successfully.
output.txt ফাইলের কন্টেন্ট:
This is the first line of the file.
This is the second line of the file.
This is the third line of the file.
BufferedReader এবং BufferedWriter এর আরও কিছু বৈশিষ্ট্য:
1. Performance Optimization:
- BufferedReader এবং BufferedWriter সাধারণ
FileReaderএবংFileWriterএর তুলনায় দ্রুত কাজ করে, কারণ এটি বড় ডেটা ব্লক বাফারে ধারণ করে এবং একসাথে পড়ে এবং লেখে।
2. mark() এবং reset() মেথড:
mark(int readAheadLimit)মেথড ব্যবহার করে আপনি একটি পজিশন মার্ক করতে পারেন, এবং পরেreset()মেথড ব্যবহার করে আপনি সেই পজিশন থেকে আবার পড়া শুরু করতে পারেন।
3. Handling Newlines:
- BufferedWriter ক্লাসে
newLine()মেথডের মাধ্যমে OS-specific newlines সঠিকভাবে ব্যবহৃত হয়।
BufferedReader এবং BufferedWriter এর ব্যবহার কৌশল:
- Large File Handling:
- যখন বড় ফাইলের মধ্যে ডেটা পড়া বা লেখা হয়, তখন BufferedReader এবং BufferedWriter ব্যবহার করা হয়, কারণ এটি বড় পরিমাণ ডেটা দ্রুত এবং কার্যকরভাবে হ্যান্ডেল করতে পারে।
- Efficiency in File Operations:
- সাধারণ FileReader বা FileWriter এর তুলনায় BufferedReader এবং BufferedWriter অনেক বেশি কার্যকরী, বিশেষত যখন একাধিক লাইন পড়া বা লেখা হয়।
- Resource Management:
- try-with-resources ব্যবহার করে BufferedReader এবং BufferedWriter ক্লাসের রিসোর্সগুলি স্বয়ংক্রিয়ভাবে বন্ধ করা যায়, যা memory leak প্রতিরোধ করতে সাহায্য করে।
- BufferedReader এবং BufferedWriter হল Java I/O প্যাকেজের গুরুত্বপূর্ণ ক্লাস যা line-by-line file reading and writing এর জন্য ব্যবহৃত হয়। এগুলি performance improvement এবং resource management এর জন্য আদর্শ।
- BufferedReader ব্যবহার করে বড় ফাইল বা স্ট্রিম থেকে line-by-line ডেটা পড়া যায় এবং BufferedWriter ব্যবহার করে ফাইল বা স্ট্রিমে line-by-line ডেটা লেখা যায়।
- এই ক্লাসগুলো ডেটা পড়া এবং লেখার efficiency বাড়ায় এবং ছোট ছোট I/O অপারেশনের পরিবর্তে বড় ব্লক ব্যবহার করে, যা কর্মক্ষমতা উন্নত করে।
BufferedReader এবং BufferedWriter ক্লাসের ব্যবহারে ফাইলের সাথে কাজ করা অনেক দ্রুত এবং কার্যকরী হয়ে ওঠে, বিশেষত যখন line-by-line ডেটা পড়া এবং লেখা প্রয়োজন।
Content added By
Read more