আপনি যখন BufferedWriter অবজেক্ট ব্যবহার করে একটি স্ট্রিমে ডেটা লিখতে চান, write() মেথড আহ্বান করার পর ডেটা প্রাথমিকভাবে বাফার্ড থাকে, কিছুই প্রিন্ট হয় না।
flush() মেথড বাফারের কন্টেন্ট আন্ডারলাইং স্ট্রিমে পুশ করার জন্য ব্যবহৃত হয়।
উদাহরণ
নিচের জাভা প্রোগ্রামে, আমরা কনসোল (স্ট্যান্ডার্ড আউটপুট স্ট্রিম) এ একটি লাইন প্রিন্ট করার চেষ্টা করছি। এখানে আমরা write() মেথড আহ্বান করছি প্রয়োজনীয় স্ট্রিং পাস করে।
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class BufferedWriterExample {
public static void main(String args[]) throws IOException {
// OutputStreamWriter ক্লাস ইনস্ট্যানশিয়েট করা
OutputStreamWriter out = new OutputStreamWriter(System.out);
// BufferedWriter ইনস্ট্যানশিয়েট করা
BufferedWriter writer = new BufferedWriter(out);
// কনসোলে ডেটা লিখা
writer.write("Hello welcome to Tutorialspoint");
}
}
কিন্তু, যেহেতু আপনি BufferedWriter-এর বাফারের কন্টেন্ট ফ্লাশ করেননি, কিছুই প্রিন্ট হবে না।
এটি সমাধান করতে write() এক্সিকিউট করার পর flush() মেথড আহ্বান করুন।
উদাহরণ (সমাধান)
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class BufferedWriterExample {
public static void main(String args[]) throws IOException {
// OutputStreamWriter ক্লাস ইনস্ট্যানশিয়েট করা
OutputStreamWriter out = new OutputStreamWriter(System.out);
// BufferedWriter ইনস্ট্যানশিয়েট করা
BufferedWriter writer = new BufferedWriter(out);
// কনসোলে ডেটা লিখা
writer.write("Hello welcome to Tutorialspoint");
writer.flush();
}
}
আউটপুট
Hello welcome to Tutorialspoint