首頁>Club>
4
回覆列表
  • 1 # 使用者1715087235891

      flush()意思是把緩衝區的內容強制的寫出。 因為作業系統的某些機制,為了防止一直不停地磁碟讀寫,所以有了延遲寫入的概念,(注意不要和frush()重新整理混淆了)

    主要用在IO中,即清空緩衝區資料,一般在讀寫流(stream)的時候,資料是先被讀到了記憶體中,再把資料寫到檔案中,當你資料讀完的時候不代表你的資料已經寫完了,因為還有一部分有可能會留在記憶體這個緩衝區中。這時候如果你呼叫了close()方法關閉了讀寫流,那麼這部分資料就會丟失,所以應該在關閉讀寫流之前先flush()。。

      在網路web伺服器上也是,為了防止寫一個位元組就傳送一個訊息,所以有緩衝區的概念,比如64K的記憶體區域,緩衝區寫滿了再一次性寫入磁碟之中(或者傳送給客戶端瀏覽器)。

    flush方法一般是程式寫入完成時執行。隨後跟著close方法。例如:

    // 取得輸出流。當然,看具體環境。

    PrintWriter out = Util.getWriter();

    out.println("輸出一些資訊,可能很多");

    out.flush();

    out.close();

  • 中秋節和大豐收的關聯?
  • 五個月寶寶晚上睡覺出汗是怎麼回事?