FileReader এবং FileWriter হল Java.io প্যাকেজের ক্লাস, যা Character Streams এর অংশ। এই ক্লাসগুলি text files পড়া এবং লেখা করার জন্য ব্যবহৃত হয়। তারা byte streams এর তুলনায় character data প্রক্রিয়া করতে সক্ষম, যা Unicode characters সহ সমস্ত টেক্সট ডেটার জন্য আরও উপযুক্ত।
- FileReader: ফাইল থেকে টেক্সট (ক্যারেক্টার) পড়ার জন্য ব্যবহৃত হয়।
- FileWriter: ফাইলে টেক্সট (ক্যারেক্টার) লেখার জন্য ব্যবহৃত হয়।
FileReader এবং FileWriter এর ভূমিকা:
- FileReader:
- এটি Character Stream যা ফাইল থেকে Unicode character পড়তে ব্যবহৃত হয়।
- FileReader মূলত InputStreamReader এর একটি subclass।
- এটি সাধারণত Text Files পড়তে ব্যবহৃত হয়, এবং byte streams এর তুলনায় বেশি কার্যকরী।
- FileWriter:
- এটি Character Stream যা ফাইলে Unicode character লেখার জন্য ব্যবহৃত হয়।
- এটি OutputStreamWriter এর একটি subclass।
- FileWriter ফাইলে text data লেখার জন্য খুবই সুবিধাজনক।
FileReader এবং FileWriter এর প্রধান বৈশিষ্ট্য:
- FileReader:
read(): একটি ক্যারেক্টার পড়ে।read(char[] cbuf): একটি ক্যারেক্টার অ্যারে থেকে ডেটা পড়ে।close(): স্ট্রিমটি বন্ধ করে।
- FileWriter:
write(int c): একটি ক্যারেক্টার লেখে।write(char[] cbuf): একটি ক্যারেক্টার অ্যারে লেখে।flush(): সমস্ত বাফার করা ডেটা ডিস্কে লেখে।close(): স্ট্রিমটি বন্ধ করে।
FileReader এবং FileWriter এর উদাহরণ
১. FileReader দিয়ে ফাইল থেকে টেক্সট পড়া
import java.io.*;
public class FileReaderExample {
public static void main(String[] args) {
// ফাইল অবজেক্ট তৈরি
try (FileReader fr = new FileReader("example.txt")) {
int data;
while ((data = fr.read()) != -1) {
// ফাইল থেকে একে একে ক্যারেক্টার পড়া
System.out.print((char) data);
}
} catch (IOException e) {
System.out.println("An error occurred: " + e.getMessage());
}
}
}
ব্যাখ্যা:
- FileReader ব্যবহার করে example.txt ফাইল থেকে একে একে ক্যারেক্টার পড়া হচ্ছে।
read()মেথডের মাধ্যমে একে একে ক্যারেক্টার পড়ে আউটপুট হিসেবে প্রদর্শন করা হচ্ছে।
আউটপুট (যদি example.txt এ কিছু ডেটা থাকে):
Hello, this is a sample text.
২. FileWriter দিয়ে ফাইলে টেক্সট লেখা
import java.io.*;
public class FileWriterExample {
public static void main(String[] args) {
// ফাইল অবজেক্ট তৈরি
try (FileWriter fw = new FileWriter("output.txt")) {
String text = "This is a sample text written to a file.";
fw.write(text); // টেক্সট ফাইলে লেখা
System.out.println("Text written to output.txt");
} catch (IOException e) {
System.out.println("An error occurred: " + e.getMessage());
}
}
}
ব্যাখ্যা:
- FileWriter ব্যবহার করে output.txt ফাইলে টেক্সট লেখা হচ্ছে।
write()মেথড ব্যবহার করা হয়েছে একটি স্ট্রিং লেখার জন্য।
আউটপুট:
Text written to output.txt
৩. FileReader এবং FileWriter ব্যবহার করে ফাইল কপি করা
import java.io.*;
public class FileCopyExample {
public static void main(String[] args) {
// ফাইল অবজেক্ট তৈরি
try (FileReader fr = new FileReader("source.txt");
FileWriter fw = new FileWriter("destination.txt")) {
int data;
while ((data = fr.read()) != -1) {
fw.write(data); // ফাইলের ডেটা কপি করা
}
System.out.println("File copied successfully!");
} catch (IOException e) {
System.out.println("An error occurred: " + e.getMessage());
}
}
}
ব্যাখ্যা:
- FileReader দ্বারা source.txt ফাইল থেকে ডেটা পড়া হচ্ছে।
- FileWriter দ্বারা সেই ডেটা destination.txt ফাইলে লেখা হচ্ছে।
আউটপুট:
File copied successfully!
FileReader এবং FileWriter এর সুবিধা
- Text File Processing: FileReader এবং FileWriter টেক্সট ফাইলগুলির জন্য আদর্শ, কারণ তারা Unicode characters সহ টেক্সট ডেটা পড়তে এবং লেখতে সহায়ক।
- Easy to Use: FileReader এবং FileWriter ব্যবহার করা সহজ, এবং স্ট্রীমগুলিকে ব্যবহার করে বিভিন্ন ধরনের ফাইল ম্যানিপুলেশন করা যায়।
- Character-based Streams: Character Streams ব্যবহার করা বেশি কার্যকরী যখন ডেটা টেক্সট ফরম্যাটে থাকে (অর্থাৎ, বাইনারি ডেটার পরিবর্তে)। এটি Unicode সাপোর্ট করে।
FileReader এবং FileWriter এর সীমাবদ্ধতা
- Bigger Files: FileReader এবং FileWriter বড় আকারের ফাইলগুলি পড়তে এবং লেখতে অপেক্ষাকৃত ধীর হতে পারে।
- Character Encoding: FileWriter ডিফল্ট platform encoding ব্যবহার করে, তাই যদি ফাইলটি নির্দিষ্ট character encoding প্রয়োজন হয়, তবে OutputStreamWriter ব্যবহার করা উচিত।
- Performance: BufferedReader বা BufferedWriter এর মতো buffered streams আরও দক্ষভাবে বড় ডেটা ফাইল পড়া বা লেখা করতে পারে।
- FileReader এবং FileWriter Java-তে টেক্সট ফাইল পড়া এবং লেখা করার জন্য বিশেষভাবে ডিজাইন করা Character Streams।
- FileReader ব্যবহার করে ফাইল থেকে text data পড়া যায় এবং FileWriter ব্যবহার করে ফাইলে text data লেখা যায়।
- FileReader এবং FileWriter টেক্সট ফাইলের জন্য আদর্শ, তবে বড় আকারের বা বাইনারি ফাইলের জন্য Byte Streams বা Buffered Streams ব্যবহার করা ভালো।
Content added By
Read more