PrintStream এবং PrintWriter হল Java I/O প্যাকেজের ক্লাস যা output stream হিসেবে ব্যবহৃত হয় এবং টেক্সট বা বাইনারি ডেটা আউটপুট প্রিন্ট করার জন্য ডিজাইন করা হয়েছে। এই ক্লাসগুলি ডেটা আউটপুট করার সময় ফরম্যাটেড আউটপুট প্রদান করতে পারে এবং একটি স্ট্যান্ডার্ড আউটপুট (যেমন System.out) অথবা ফাইল বা অন্যান্য স্ট্রিমে আউটপুট প্রেরণ করতে সাহায্য করে।
এই দুইটি ক্লাস মূলত ফাইলের আউটপুট এবং কনসোলে আউটপুট করতে ব্যবহৃত হয়, তবে PrintWriter ক্লাস Unicode সাপোর্ট সহ text-based output প্রদান করে, যেখানে PrintStream শুধুমাত্র byte-based output প্রদান করে।
PrintStream Class:
PrintStream ক্লাসটি OutputStream এর একটি সাবক্লাস এবং এটি ডেটা প্রিন্ট করার জন্য ব্যবহৃত হয়। এটি System.out-এর মাধ্যমে আউটপুট প্রিন্ট করতে ব্যবহৃত হয় এবং এটি print(), println(), এবং printf() মেথড সরবরাহ করে।
PrintStream এর সুবিধা:
printf()মেথড: ফরম্যাটেড আউটপুট প্রদানে সহায়ক।println()মেথড: নতুন লাইনে আউটপুট লেখে।- System.out-এর মাধ্যমে কনসোলে আউটপুট প্রদান।
PrintWriter Class:
PrintWriter ক্লাসটি Writer এর একটি সাবক্লাস এবং এটি Character Stream হিসেবে কাজ করে। এটি print(), println(), এবং printf() মেথড সরবরাহ করে, তবে এটি Unicode সাপোর্ট করে, যা text-based I/O এর জন্য ব্যবহারযোগ্য।
PrintWriter এর সুবিধা:
printf()মেথড: ফরম্যাটেড আউটপুট।println()মেথড: নতুন লাইনে আউটপুট।System.outবা ফাইল এ আউটপুট লিখতে ব্যবহার করা যায়।
PrintStream এবং PrintWriter এর উদাহরণ:
1. PrintStream এর উদাহরণ:
import java.io.*;
public class PrintStreamExample {
public static void main(String[] args) {
// কনসোলে আউটপুট প্রিন্ট করার জন্য PrintStream ব্যবহার
PrintStream ps = System.out;
ps.println("Hello, World! This is printed using PrintStream.");
// একটি ফাইলে আউটপুট প্রিন্ট করার জন্য PrintStream ব্যবহার
try (PrintStream fileOut = new PrintStream("output.txt")) {
fileOut.println("This is a line written to the file using PrintStream.");
System.out.println("Data written to file successfully.");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
System.outব্যবহার করে কনসোলে আউটপুট প্রিন্ট করা হয়েছে।PrintStreamব্যবহার করে output.txt ফাইলে ডেটা লেখা হয়েছে।
আউটপুট (কনসোলে):
Hello, World! This is printed using PrintStream.
Data written to file successfully.
ফাইল output.txt এর কন্টেন্ট:
This is a line written to the file using PrintStream.
2. PrintWriter এর উদাহরণ:
import java.io.*;
public class PrintWriterExample {
public static void main(String[] args) {
// কনসোলে আউটপুট প্রিন্ট করার জন্য PrintWriter ব্যবহার
PrintWriter pw = new PrintWriter(System.out);
pw.println("Hello, World! This is printed using PrintWriter.");
// একটি ফাইলে আউটপুট প্রিন্ট করার জন্য PrintWriter ব্যবহার
try (PrintWriter fileOut = new PrintWriter("output.txt")) {
fileOut.println("This is a line written to the file using PrintWriter.");
fileOut.printf("Formatted number: %.2f\n", 123.456);
System.out.println("Data written to file successfully.");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
System.outব্যবহার করে কনসোলে আউটপুট প্রিন্ট করা হয়েছে।PrintWriterব্যবহার করে output.txt ফাইলে ডেটা লেখা হয়েছে এবংprintf()মেথডের মাধ্যমে ফরম্যাটেড আউটপুট প্রদান করা হয়েছে।
আউটপুট (কনসোলে):
Hello, World! This is printed using PrintWriter.
Data written to file successfully.
ফাইল output.txt এর কন্টেন্ট:
This is a line written to the file using PrintWriter.
Formatted number: 123.46
PrintStream এবং PrintWriter এর মধ্যে পার্থক্য:
| বিষয় | PrintStream | PrintWriter |
|---|---|---|
| Stream Type | Byte Stream (Character Encoding এর জন্য উপযুক্ত নয়) | Character Stream (Unicode সাপোর্ট করে) |
| Method | print(), println(), printf() | print(), println(), printf() |
| Use Case | System.out এর মাধ্যমে বাইনারি ডেটা বা টেক্সট প্রিন্ট করা | টেক্সট ফাইল বা স্ট্রিমে text-based I/O প্রিন্ট করা |
| Unicode Support | No Unicode support | Supports Unicode (Character Encoding) |
| File Writing | PrintStream ব্যবহার করে বাইনারি বা টেক্সট ফাইল লেখা যায় | PrintWriter ব্যবহার করে শুধুমাত্র টেক্সট ফাইল লেখা যায় |
| Main Advantage | Byte Stream সাপোর্ট, ফাইল বা কনসোলে দ্রুত আউটপুট | Character Stream সাপোর্ট, ফরম্যাটেড আউটপুট প্রিন্টিং |
- PrintStream এবং PrintWriter ক্লাস দুটি Java I/O সিস্টেমের গুরুত্বপূর্ণ অংশ, যা output স্ট্রিম পরিচালনার জন্য ব্যবহৃত হয়।
- PrintStream বাইনারি ডেটার জন্য উপযুক্ত, তবে PrintWriter টেক্সট ডেটার জন্য আরও কার্যকরী এবং এটি Unicode সাপোর্ট করে।
- এই ক্লাসগুলো formatted output (যেমন
printf()মেথড) সরবরাহ করে এবং ডেটা দ্রুত এবং কার্যকরভাবে আউটপুট প্রিন্ট করার জন্য ব্যবহৃত হয়।
PrintWriter সাধারণত text-based I/O এবং Unicode সাপোর্টের জন্য ব্যবহৃত হয়, যেখানে PrintStream সাধারণত byte-based output এবং স্ট্যান্ডার্ড আউটপুট (কনসোল) ব্যবহারের জন্য উপযুক্ত।
Read more