PrintStream হল Java.io প্যাকেজের একটি ক্লাস, যা ডেটা আউটপুট করতে ব্যবহৃত হয় এবং এটি formatted output প্রদান করার জন্য বিশেষভাবে উপযোগী। PrintStream ক্লাসটি System.out এর মাধ্যমে কনসোল আউটপুট প্রদান করতে ব্যবহৃত হয়, এবং এটি বিশেষভাবে টেক্সট ডেটার ফরম্যাটেড আউটপুট (যেমন println(), print(), printf()) করার জন্য ব্যবহৃত হয়।
PrintStream একটি byte stream, তবে এটি formatted text আউটপুট করতে সক্ষম। এতে print(), println(), এবং printf() মেথডগুলো অন্তর্ভুক্ত রয়েছে, যা ফরম্যাট করা আউটপুট প্রিন্ট করতে সহায়ক।
PrintStream এর ভূমিকা এবং প্রয়োজনীয়তা:
- Formatted Output: PrintStream ফরম্যাটেড আউটপুট করার জন্য
printf()এবংformat()মেথড প্রদান করে। - Convenience: এটি সহজেই টেক্সট এবং বাইনারি ডেটা আউটপুট করতে সহায়ক। এটি একটি স্ট্রিম যার মাধ্যমে ডেটা প্রিন্ট করা সহজ হয়।
- System.out: PrintStream এর একটি উদাহরণ হল System.out, যা স্ট্যান্ডার্ড আউটপুট (কনসোল) এ ডেটা প্রিন্ট করে।
- Automatic Flushing:
PrintStreamক্লাসের সাথেflush()এবংclose()মেথড অন্তর্ভুক্ত রয়েছে, যা আউটপুট স্ট্রিমে বাফারিং করে থাকা ডেটা পাঠাতে সাহায্য করে এবং স্ট্রিম বন্ধ করতে ব্যবহৃত হয়।
PrintStream এর মেথড:
| মেথড | বর্ণনা |
|---|---|
print() | ডেটা প্রিন্ট করে, কিন্তু একটি নতুন লাইন শুরু করে না। |
println() | ডেটা প্রিন্ট করে এবং একটি নতুন লাইন শুরু করে। |
printf() | ফরম্যাটেড আউটপুট প্রিন্ট করে (Java printf মত)। |
format() | printf() এর মতই ফরম্যাটেড আউটপুট প্রিন্ট করে। |
flush() | স্ট্রিমে বাফার করা ডেটা পাঠাতে ব্যবহৃত হয়। |
close() | স্ট্রিম বন্ধ করে। |
PrintStream এর উদাহরণ:
১. সাধারণ PrintStream ব্যবহার
import java.io.*;
public class PrintStreamExample {
public static void main(String[] args) {
// PrintStream এর মাধ্যমে কনসোলে আউটপুট
PrintStream ps = System.out;
ps.println("Hello, World!"); // একটি নতুন লাইনসহ প্রিন্ট
ps.print("This is a test."); // নতুন লাইন ছাড়া প্রিন্ট
ps.println(" And this is on the next line.");
ps.printf("Formatted number: %.2f\n", 123.456); // ফরম্যাট করা আউটপুট
}
}
ব্যাখ্যা:
println()মেথডটি আউটপুট প্রদানের পর নতুন লাইন শুরু করে।print()মেথডটি আউটপুট প্রদানের পর নতুন লাইন শুরু করে না।printf()মেথডটি ফরম্যাটেড আউটপুট প্রদানের জন্য ব্যবহৃত হয়। এখানে%.2fব্যবহার করা হয়েছে একটি ভাসমান দশমিক সংখ্যাকে দুটি দশমিক স্থান পর্যন্ত ফরম্যাট করার জন্য।
আউটপুট:
Hello, World!
This is a test. And this is on the next line.
Formatted number: 123.46
২. PrintStream এর মাধ্যমে ফাইল আউটপুট
import java.io.*;
public class FileOutputExample {
public static void main(String[] args) {
try (PrintStream ps = new PrintStream(new FileOutputStream("output.txt"))) {
ps.println("This is written to a file using PrintStream.");
ps.printf("Formatted output: %.2f\n", 3.14159);
System.out.println("Data written to output.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
- PrintStream ব্যবহার করে আমরা কনসোলে এবং ফাইলে আউটপুট প্রিন্ট করতে পারি।
- এখানে
FileOutputStreamব্যবহার করে একটি ফাইলের মধ্যে আউটপুট লেখা হচ্ছে।
আউটপুট (ফাইলের মধ্যে output.txt):
This is written to a file using PrintStream.
Formatted output: 3.14
কনসোল আউটপুট:
Data written to output.txt
৩. PrintStream এর Flush এবং Close ব্যবহার
import java.io.*;
public class PrintStreamFlushExample {
public static void main(String[] args) {
try (PrintStream ps = new PrintStream(new FileOutputStream("output.txt"))) {
ps.print("This is a test without flushing.");
ps.flush(); // বাফারড ডেটা পাঠাতে flush করা হলো।
ps.println(" And this is after flush.");
System.out.println("Data written and flushed to output.txt.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
flush()মেথডটি স্ট্রিমে বাফার করা সমস্ত ডেটা পাঠিয়ে দেয়।close()মেথডটি স্ট্রিম বন্ধ করে।
আউটপুট (ফাইলের মধ্যে output.txt):
This is a test without flushing.And this is after flush.
কনসোল আউটপুট:
Data written and flushed to output.txt.
PrintStream এর সুবিধা এবং সীমাবদ্ধতা
সুবিধা:
- ফরম্যাটেড আউটপুট:
printf()এবংformat()মেথডগুলির মাধ্যমে ফরম্যাটেড আউটপুট করা সহজ।
- সহজ এবং সুবিধাজনক:
print(),println()মেথডগুলির মাধ্যমে সাধারণ আউটপুট প্রিন্ট করা সহজ।
- স্ট্রিমের উপর আউটপুট প্রদান:
- এটি System.out (স্ট্যান্ডার্ড আউটপুট), ফাইল বা অন্য স্ট্রিমে আউটপুট পাঠানোর জন্য ব্যবহার করা যেতে পারে।
- Flush এবং Close:
flush()এবংclose()মেথডের মাধ্যমে আউটপুট স্ট্রিমের কার্যকারিতা উন্নত করা যায় এবং ডেটা স্ট্রিমে জমে থাকা ডেটা পাঠানো নিশ্চিত করা যায়।
সীমাবদ্ধতা:
- Byte Stream:
- PrintStream একটি byte stream, কিন্তু Character stream এর জন্য PrintWriter আরও কার্যকরী হতে পারে। PrintWriter সঠিক character encoding সাপোর্ট করে।
- Performance:
- খুব বড় ডেটার জন্য, বিশেষ করে formatted output এর ক্ষেত্রে PrintStream কিছুটা ধীর হতে পারে, এবং আরো উন্নত টুলস যেমন BufferedOutputStream ব্যবহৃত হতে পারে।
- PrintStream একটি শক্তিশালী ক্লাস যা Java এ formatted output তৈরি করার জন্য ব্যবহৃত হয়।
- এটি ফরম্যাট করা আউটপুট যেমন
printf(),print(), এবংprintln()মেথডের মাধ্যমে সরবরাহ করে। - PrintStream সাধারণ আউটপুটের জন্য এবং file output এর জন্য খুবই উপযোগী, তবে ফাইল বা কনসোলের জন্য character encoding সঠিকভাবে সমর্থন করার জন্য PrintWriter ব্যবহার করা উচিত।
PrintStream Java-তে আউটপুট পরিচালনা করার একটি সহজ এবং কার্যকর উপায়, যা প্রোগ্রামিংয়ে দক্ষতা বৃদ্ধি করে এবং ব্যবহারকারীদের সুবিধা প্রদান করে।
Read more