Text এবং Object Data এর জন্য PrintWriter ব্যবহার

PrintStream এবং PrintWriter - জাভা আইও (Java.io Package) - Java Technologies

320

PrintWriter হল Java.io প্যাকেজের একটি ক্লাস যা Text Data লেখার জন্য ব্যবহৃত হয়। এটি খুবই কার্যকরী এবং উচ্চ স্তরের Character Stream, যা টেক্সট ডেটা স্ট্রিমে বা ফাইলে লেখার জন্য ব্যবহৃত হয়। PrintWriter ক্লাসটি বিশেষভাবে formatted output লেখার জন্য উপযুক্ত, যেমন println(), printf(), এবং format() মেথড যা বিভিন্ন ধরনের ডেটা স্ট্রিমে লিখতে সাহায্য করে।

PrintWriter ক্লাস শুধুমাত্র Text Data লেখার জন্য ব্যবহৃত হয়, তবে এটি কিছু অবজেক্ট ডেটা (যেমন String, int, boolean, ইত্যাদি) লেখার জন্যও ব্যবহার করা যেতে পারে।

এটি OutputStreamWriter বা FileWriter এর উপরের স্তরের ক্লাস, যা Writer ইনপুট স্ট্রীমে লেখা সহজ করে তোলে এবং UTF-8 এনকোডিং সাপোর্ট করে।


PrintWriter ক্লাসের বৈশিষ্ট্য:

  • println(): লাইন প্রিন্ট করার পরে একটি নতুন লাইন যোগ করে।
  • print(): শুধুমাত্র ডেটা প্রিন্ট করে, কিন্তু নতুন লাইন যোগ করে না।
  • printf(): ফরম্যাটেড আউটপুট প্রিন্ট করার জন্য ব্যবহৃত হয়।
  • write(): ডেটা লেখার জন্য, যেখানে প্রিমিটিভ ডেটা টাইপ ব্যবহার করা যায়।
  • flush(): সমস্ত বাফার করা ডেটা আউটপুটে লিখে দেয়।
  • close(): স্ট্রিমটি বন্ধ করে।

PrintWriter দিয়ে Text Data লেখা

এখানে একটি উদাহরণ যেখানে PrintWriter ব্যবহার করে একটি ফাইলে Text Data লেখা হবে।

Text Data লেখার উদাহরণ:

import java.io.*;

public class PrintWriterExample {
    public static void main(String[] args) {
        try (PrintWriter writer = new PrintWriter(new FileWriter("output.txt"))) {
            // টেক্সট ডেটা লেখা
            writer.println("Hello, Java!");  // একটি লাইন প্রিন্ট করে এবং একটি নতুন লাইন যোগ করে
            writer.print("This is a sample text."); // শুধুমাত্র লেখে, নতুন লাইন যোগ করে না
            writer.printf("Integer: %d, Float: %.2f", 42, 3.14); // ফরম্যাটেড আউটপুট
            writer.println();  // একটি নতুন লাইন
            System.out.println("Text data written to output.txt");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • PrintWriter ব্যবহার করে output.txt ফাইলে টেক্সট ডেটা লেখা হচ্ছে।
  • println(), print(), এবং printf() মেথডগুলির মাধ্যমে ফরম্যাটেড এবং সাধারণ টেক্সট আউটপুট তৈরি করা হয়েছে।

আউটপুট (output.txt):

Hello, Java!
This is a sample text.Integer: 42, Float: 3.14

PrintWriter দিয়ে Object Data লেখা

PrintWriter এর মাধ্যমে অবজেক্ট ডেটা stringified ফরম্যাটে লেখা সম্ভব। তবে যদি আপনি অবজেক্টগুলো writeObject() এর মাধ্যমে serialize করতে চান, তাহলে আপনাকে ObjectOutputStream ব্যবহার করতে হবে। কিন্তু, PrintWriter কে ব্যবহার করে সাধারণত আপনি অবজেক্টের প্রপার্টি গুলোকে স্ট্রিং আকারে লিখবেন।

Object Data লেখার উদাহরণ (Stringified Format):

import java.io.*;

class Person {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

public class PrintWriterObjectExample {
    public static void main(String[] args) {
        try (PrintWriter writer = new PrintWriter(new FileWriter("person.txt"))) {
            Person person = new Person("John", 30);
            // Person অবজেক্টের প্রপার্টি স্ট্রিং আকারে লেখানো হচ্ছে
            writer.println("Name: " + person.name);
            writer.println("Age: " + person.age);
            System.out.println("Object data written to person.txt");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • এখানে একটি Person অবজেক্ট তৈরি করা হয়েছে এবং তার name এবং age প্রপার্টি PrintWriter ব্যবহার করে person.txt ফাইলে লেখা হয়েছে।

আউটপুট (person.txt):

Name: John
Age: 30

PrintWriter এর অন্যান্য সুবিধা

  1. Formatted Output: PrintWriter ক্লাসটি ফরম্যাটেড আউটপুট সমর্থন করে। যেমন, printf() এবং format() মেথড ব্যবহার করে আপনি আউটপুটকে formatted আকারে প্রিন্ট করতে পারেন।
  2. Automatic Line Breaks: println() মেথড ব্যবহার করার মাধ্যমে প্রতিটি লাইন শেষে নতুন লাইন যোগ করা যায়। এটা বিশেষত ব্যবহারিক যখন আপনি ডেটা line by line প্রিন্ট করতে চান।
  3. Unicode Support: PrintWriter ক্লাস UTF-8 বা অন্য Unicode এনকোডিং সাপোর্ট করে, যা আপনাকে বিভিন্ন ভাষার টেক্সট সংরক্ষণ এবং প্রিন্ট করতে সহায়ক।
  4. Buffered Output: PrintWriter স্ট্রীমের মাধ্যমে লেখার সময় buffering করে, যার ফলে performance উন্নত হয়।

PrintWriter এর সীমাবদ্ধতা

  1. Character-based Streams Only: PrintWriter শুধুমাত্র character-based streams এর জন্য উপযুক্ত। যদি আপনি binary data (যেমন int, float, byte array) লিখতে চান, তখন আপনাকে DataOutputStream ব্যবহার করতে হবে।
  2. Stringified Format: PrintWriter দ্বারা অবজেক্ট ডেটা stringified আকারে লেখা যায়, তবে এটি অবজেক্টের প্রকৃত স্টেট সংরক্ষণ বা পুনঃপ্রসেস করতে সক্ষম নয়, সেক্ষেত্রে ObjectOutputStream ব্যবহার করা উচিত।

  • PrintWriter Java I/O প্যাকেজের একটি শক্তিশালী ক্লাস যা text data লেখার জন্য ব্যবহৃত হয়।
  • এটি formatted output এর জন্য বিশেষভাবে উপযোগী এবং Unicode সমর্থন সহ সহজেই ডেটা স্ট্রিমে বা ফাইলে লেখার সুবিধা প্রদান করে।
  • PrintWriter ব্যবহার করে টেক্সট ডেটা, সাধারণ স্ট্রিং বা অবজেক্টের স্ট্রিংified প্রপার্টি লেখার ক্ষেত্রে এটি কার্যকরী।
  • যেহেতু এটি character-based stream, এটি বাইনারি ডেটা লেখার জন্য উপযুক্ত নয়, এবং সেই জন্য DataOutputStream ব্যবহার করা উত্তম।
Content added By
Promotion

Are you sure to start over?

Loading...