PrintStream এবং PrintWriter Java I/O প্যাকেজের দুটি গুরুত্বপূর্ণ ক্লাস, যা output ডেটা প্রিন্ট করতে ব্যবহৃত হয়। এই ক্লাসগুলো character-based এবং byte-based আউটপুট স্ট্রিমের মধ্যে সুবিধাজনক উপায় প্রদান করে, যেখানে আপনি সহজেই ডেটা ফর্ম্যাটিং সহ প্রিন্ট করতে পারেন।
PrintStream ক্লাস:
PrintStream ক্লাসটি OutputStream এর একটি সাবক্লাস যা টেক্সট এবং বাইনারি ডেটা আউটপুটের জন্য ব্যবহৃত হয়। এটি System.out এর মাধ্যমে স্ট্যান্ডার্ড আউটপুট (কনসোলে) বা ফাইলে আউটপুট প্রিন্ট করতে সাহায্য করে। PrintStream সাধারণত print(), println(), এবং printf() মেথড সরবরাহ করে, যার মাধ্যমে ফরম্যাটেড আউটপুট প্রিন্ট করা যায়।
PrintStream এর বৈশিষ্ট্য:
print()এবংprintln()মেথড:print()মেথড সাধারণ আউটপুট প্রদান করে এবং লাইন ব্রেক দেয় না।println()মেথড আউটপুট প্রদান করে এবং প্রতিটি আউটপুট শেষে লাইন ব্রেক দেয়।
- ফরম্যাটেড আউটপুট:
printf()মেথডের মাধ্যমে ফরম্যাটেড আউটপুট প্রদান করা যায়।
- ফাইল প্রিন্টিং:
- PrintStream কনসোলে আউটপুট করার পাশাপাশি ফাইলও প্রিন্ট করতে সক্ষম।
PrintStream উদাহরণ:
import java.io.*;
public class PrintStreamExample {
public static void main(String[] args) {
try {
// কনসোলে আউটপুট প্রিন্ট
PrintStream ps = System.out;
ps.println("Hello, this is a PrintStream example.");
// ফাইলে আউটপুট প্রিন্ট
PrintStream fileOut = new PrintStream("output.txt");
fileOut.println("This is printed to the file.");
fileOut.close();
System.out.println("Data printed to output.txt successfully.");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
- PrintStream ব্যবহার করে কনসোলে এবং ফাইলে আউটপুট করা হচ্ছে। প্রথমে কনসোলে প্রিন্ট করা হচ্ছে এবং পরে
output.txtফাইলে লিখা হচ্ছে।
আউটপুট:
Hello, this is a PrintStream example.
Data printed to output.txt successfully.
ফাইলের কন্টেন্ট (output.txt):
This is printed to the file.
PrintWriter ক্লাস:
PrintWriter ক্লাস Writer এর একটি সাবক্লাস এবং এটি টেক্সট (character) আউটপুট প্রিন্ট করার জন্য ব্যবহৃত হয়। এটি PrintStream এর মতোই প্রিন্ট মেথড সরবরাহ করে তবে এটি character-based স্ট্রিমে কাজ করে, যেখানে বাইট-ভিত্তিক স্ট্রিমের জন্য PrintStream ব্যবহার করা হয়।
PrintWriter এর বৈশিষ্ট্য:
print()এবংprintln()মেথড:print()এবংprintln()মেথড ব্যবহার করে টেক্সট প্রিন্ট করা যায়, যেখানেprintln()প্রতিটি আউটপুটের পরে একটি নতুন লাইন প্রদান করে।
- ফরম্যাটেড আউটপুট:
printf()মেথডের মাধ্যমে ফরম্যাটেড আউটপুট প্রদান করা যায়।
- Flush এবং AutoFlush:
flush()মেথড স্ট্রীমের সমস্ত জমা ডেটা আউটপুট স্ট্রীমে পাঠিয়ে দেয়।- AutoFlush সক্ষম করা হলে,
println()মেথড প্রত্যেক বার কল হলে স্বয়ংক্রিয়ভাবে ফ্লাশ হবে।
PrintWriter উদাহরণ:
import java.io.*;
public class PrintWriterExample {
public static void main(String[] args) {
try {
// কনসোলে আউটপুট প্রিন্ট
PrintWriter pw = new PrintWriter(System.out);
pw.println("Hello, this is a PrintWriter example.");
// ফাইলে আউটপুট প্রিন্ট
PrintWriter fileOut = new PrintWriter(new FileWriter("output.txt"));
fileOut.println("This is printed to the file.");
fileOut.flush(); // ফাইলের সমস্ত ডেটা ফ্লাশ করা হচ্ছে
fileOut.close();
System.out.println("Data printed to output.txt successfully.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
- PrintWriter ব্যবহার করে কনসোলে এবং output.txt ফাইলে আউটপুট করা হচ্ছে।
- flush() মেথড ফাইলের সমস্ত জমে থাকা ডেটা ফ্লাশ করে পাঠানোর কাজ করে।
আউটপুট:
Hello, this is a PrintWriter example.
Data printed to output.txt successfully.
ফাইলের কন্টেন্ট (output.txt):
This is printed to the file.
PrintStream এবং PrintWriter এর মধ্যে পার্থক্য
| বিষয় | PrintStream | PrintWriter |
|---|---|---|
| Base Class | OutputStream (byte-based I/O) | Writer (character-based I/O) |
| Byte vs Character Streams | Byte-based স্ট্রিম ব্যবহৃত | Character-based স্ট্রিম ব্যবহৃত |
| Null Handling | Null printing সংক্রান্ত ত্রুটি সঠিকভাবে হ্যান্ডল করে না | Null printing সঠিকভাবে হ্যান্ডল করে |
| AutoFlush | AutoFlush বৈশিষ্ট্য নেই | AutoFlush বৈশিষ্ট্য আছে, flush() মেথডের মাধ্যমে |
| Common Use | Mainly used for binary data, System output | Mainly used for text output |
| Formatting | Limited formatting capabilities | Supports advanced formatting using printf() |
সারসংক্ষেপ:
- PrintStream এবং PrintWriter দুইটি Java I/O ক্লাস, যা ডেটা আউটপুট করার জন্য ব্যবহৃত হয়।
- PrintStream মূলত byte-based I/O এর জন্য উপযুক্ত, যেখানে PrintWriter character-based I/O এর জন্য ব্যবহৃত হয়।
- PrintWriter বেশি টেক্সট ফাইল বা স্ট্রিমে কাজ করার জন্য ব্যবহৃত হয় এবং autoFlush সুবিধা প্রদান করে।
- PrintStream সাধারণত বাইনারি ডেটা বা সিস্টেম আউটপুট (যেমন কনসোল) জন্য ব্যবহৃত হয়।
PrintWriter হল টেক্সট ফাইল লেখার জন্য উন্নত এবং ফরম্যাটিং সুবিধা প্রদানকারী একটি ক্লাস, যেখানে PrintStream মূলত স্ট্যান্ডার্ড আউটপুট এবং বাইনারি ডেটার জন্য ব্যবহৃত হয়।
Read more