Java BufferedReader এবং BufferedWriter হল I/O ক্লাস যা ফাইলের সাথে কার্যকরীভাবে কাজ করতে ব্যবহৃত হয়, বিশেষত যখন বড় পরিমাণে ডেটা পড়া বা লেখা হয়। এই ক্লাসগুলি buffered streams এর অংশ, যার মাধ্যমে ডেটা দ্রুত এবং কম মেমরিতে সঞ্চালিত হয়। BufferedReader সাধারণত character-based input stream এর জন্য ব্যবহৃত হয় এবং BufferedWriter character-based output stream এর জন্য ব্যবহৃত হয়।
BufferedReader এবং BufferedWriter ব্যবহারের মাধ্যমে আপনি ফাইল থেকে দ্রুত পাঠ এবং দ্রুত লেখার কাজ করতে পারেন, কারণ এই ক্লাসগুলি buffering প্রযুক্তি ব্যবহার করে।
BufferedReader and BufferedWriter Example: Efficient File Handling
Example 1: Reading from a File Using BufferedReader
এখানে একটি উদাহরণ দেওয়া হলো যেখানে একটি ফাইল থেকে BufferedReader ব্যবহার করে লাইনে লাইনে ডেটা পড়া হয়েছে।
import java.io.*;
public class BufferedReaderExample {
public static void main(String[] args) {
// Input file path
String inputFile = "input.txt";
// Reading file using BufferedReader
try (BufferedReader br = new BufferedReader(new FileReader(inputFile))) {
String line;
// Read file line by line
while ((line = br.readLine()) != null) {
System.out.println(line); // Printing each line
}
} catch (IOException e) {
e.printStackTrace(); // Handling IOExceptions
}
}
}
Explanation:
- BufferedReader:
BufferedReaderদিয়ে readLine() মেথড ব্যবহার করে লাইনে লাইনে ফাইলের ডেটা রিড করা হয়। এটি প্রতিটি লাইনে একটি স্ট্রিং রিটার্ন করে। - FileReader: ফাইল থেকে ডেটা রিড করার জন্য
FileReaderব্যবহার করা হয়। - try-with-resources: Java 7 থেকে
try-with-resourcesব্যবহার করা হয় যাতে ফাইল বা স্ট্রিম ক্লোজ করা নিশ্চিত করা যায়।
Output Example (Assuming input.txt contains):
Hello, this is a test file.
Java BufferedReader example.
Efficient file reading with buffering.
Example 2: Writing to a File Using BufferedWriter
এখানে একটি উদাহরণ দেওয়া হলো যেখানে BufferedWriter ব্যবহার করে একটি ফাইলে ডেটা লেখা হয়েছে।
import java.io.*;
public class BufferedWriterExample {
public static void main(String[] args) {
// Output file path
String outputFile = "output.txt";
// Writing to file using BufferedWriter
try (BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile))) {
String[] lines = {
"Hello, this is a test file.",
"Java BufferedWriter example.",
"Efficient file writing with buffering."
};
// Writing lines to the file
for (String line : lines) {
bw.write(line);
bw.newLine(); // Writing a new line after each string
}
System.out.println("File written successfully.");
} catch (IOException e) {
e.printStackTrace(); // Handling IOExceptions
}
}
}
Explanation:
- BufferedWriter:
BufferedWriterব্যবহার করে write() মেথড দিয়ে ফাইলে ডেটা লেখা হয়।newLine()মেথড দিয়ে একটি নতুন লাইন অ্যাড করা হয়। - FileWriter:
FileWriterব্যবহার করা হয়েছে, যেটি ফাইলে ডেটা লেখার জন্যBufferedWriterকে ইনিশিয়ালাইজ করে। - try-with-resources: আবার,
try-with-resourcesব্যবহার করা হয়েছে যাতে ফাইল লেখার পরে স্ট্রিম বন্ধ হয়ে যায়।
Output:
The contents of output.txt would be:
Hello, this is a test file.
Java BufferedWriter example.
Efficient file writing with buffering.
Example 3: Efficient File Copying Using BufferedReader and BufferedWriter
এখানে একটি উদাহরণ দেয়া হলো যেখানে BufferedReader এবং BufferedWriter ব্যবহার করে একটি ফাইলের ডেটা আরেকটি ফাইলে কপি করা হচ্ছে।
import java.io.*;
public class FileCopyExample {
public static void main(String[] args) {
String inputFile = "input.txt"; // Input file
String outputFile = "output.txt"; // Output file
try (BufferedReader br = new BufferedReader(new FileReader(inputFile));
BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile))) {
String line;
// Read from input file and write to output file line by line
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine(); // Adding a new line after each line copied
}
System.out.println("File copied successfully.");
} catch (IOException e) {
e.printStackTrace(); // Handling IOExceptions
}
}
}
Explanation:
- BufferedReader: এটি ইনপুট ফাইল থেকে ডেটা পড়তে ব্যবহৃত হয়।
- BufferedWriter: এটি আউটপুট ফাইলে ডেটা লিখতে ব্যবহৃত হয়।
- Efficient Copying: ফাইলটি লাইনে লাইনে কপি করা হচ্ছে, যা বড় ফাইলের জন্য অধিক কার্যকরী এবং দ্রুত হয়।
Output:
যদি input.txt ফাইলের মধ্যে এই ডেটা থাকে:
This is the first line.
This is the second line.
This is the third line.
তাহলে output.txt ফাইলের মধ্যে একই ডেটা কপি হবে:
This is the first line.
This is the second line.
This is the third line.
Advantages of Using BufferedReader and BufferedWriter:
- Improved Performance:
BufferedReaderএবংBufferedWriterব্যবহার করার মাধ্যমে I/O অপারেশনগুলি buffered করা হয়, যার ফলে I/O অপারেশন অনেক দ্রুত হয়। - Efficient Memory Usage: Buffering প্রযুক্তির কারণে মেমরি ব্যবহার কম হয়। একটি বড় ফাইলকে ছোট ছোট অংশে নিয়ে কাজ করা সম্ভব।
- Reduced I/O Operations: ছোট ছোট আংশিক ডেটা একসাথে পড়া বা লেখা হলে ডিস্কে I/O অপারেশন কম হয়ে যায়, যা পারফরম্যান্স উন্নত করে।
- Stream Management:
BufferedReaderএবংBufferedWriterস্বয়ংক্রিয়ভাবে স্ট্রিম পরিচালনা করতে সহায়তা করে, যেমন ফাইল ক্লোজ করা, যা ম্যানুয়ালি করতে প্রয়োজন হয় না।
- BufferedReader এবং BufferedWriter হল Java তে I/O অপারেশন করার জন্য কার্যকরী এবং দ্রুত ক্লাস, বিশেষত যখন বড় ফাইলের সাথে কাজ করা হয়।
- এই ক্লাসগুলি buffered streams ব্যবহার করে যা দ্রুত ডেটা রিড এবং রাইট করতে সাহায্য করে এবং কম মেমরি ব্যবহার করে।
- বড় আর্কাইভ বা ডেটা সেটের জন্য এই ধরনের I/O ক্লাসগুলি অপরিহার্য, কারণ এগুলি পারফরম্যান্স এবং মেমরি ব্যবহারের জন্য বেশ কার্যকর।
Read more