Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วัตถุประสงค์ของเมธอด flush() ของ BufferedWriter ใน Java

ขณะที่คุณพยายามเขียนข้อมูลลง Stream โดยใช้อ็อบเจกต์ BufferedWriter หลังจากเรียกเมธอด write() ข้อมูลจะถูกเก็บใน buffer ก่อน ไม่มีอะไรถูกพิมพ์ออกมา

เมธอด flush() ใช้สำหรับ ดันเนื้อหาของ buffer ไปยัง underlying Stream

ตัวอย่าง

ในโปรแกรม Java ต่อไปนี้ เราพยายามพิมพ์บรรทัดบนคอนโซล (Standard Output Stream) เราเรียกเมธอด write() โดยส่ง String ที่ต้องการ

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");
    }
}

แต่ เนื่องจากคุณยังไม่ได้ flush เนื้อหาของ Buffer ของ BufferedWriter ไม่มีอะไรจะถูกพิมพ์

เพื่อแก้ไข ให้เรียกเมธอด flush() หลังจาก execute 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");
        writer.flush();
    }
}

ผลลัพธ์

Hello welcome to Tutorialspoint