Java 中 BufferedWriter 類的 flush() 和 close() 方法有什麼用?


Java 的 BufferedWriter 類用於將字元流寫入指定的目標(字元輸出流)。它最初將所有字元儲存在緩衝區中,並將緩衝區的內容推送到目標,從而使字元、陣列和字串的寫入更高效。

您可以在例項化此類時指定所需的緩衝區大小。

flush() 方法

當您嘗試使用 BufferedWriter 物件將資料寫入流時,在呼叫 write() 方法後,資料將首先被緩衝,不會列印任何內容。

**flush()** 方法用於將緩衝區的內容推送到底層流。

示例

在下面的 Java 程式中,我們嘗試在控制檯(標準輸出流)上列印一行。在這裡,我們透過傳遞所需的字串來呼叫 write() 方法。

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class BufferedWriterExample {
   public static void main(String args[]) throws IOException {
      //Instantiating the OutputStreamWriter class
      OutputStreamWriter out = new OutputStreamWriter(System.out);
      //Instantiating the BufferedWriter
      BufferedWriter writer = new BufferedWriter(out);
      //Writing data to the console
      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 {
      //Instantiating the OutputStreamWriter class
      OutputStreamWriter out = new OutputStreamWriter(System.out);
      //Instantiating the BufferedWriter
      BufferedWriter writer = new BufferedWriter(out);
      //Writing data to the console
      writer.write("Hello welcome to Tutorialspoint");
      writer.flush();
   }
}

輸出

Hello welcome to Tutorialspoint

更新於: 2019年8月1日

2K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告