flush強行將快取區資料清空

2021-10-10 04:41:35 字數 828 閱讀 3506

首先先看一段**:

out.flush();

out.close()

這在我以前的**裡有所體現,但是只知道這是清空緩衝區的作用,但是不知道具體什麼是緩衝區,以及為什麼要清空他,所以今天學習了一下,我簡單舉個例子你們就知道了:

首先,咱們設想要給魚缸換水,所以需要乙個水幫浦,水幫浦是連線魚缸和下水道的,咱們的任務就是將魚缸裡面水全抽乾,這時,我們就可以把水管當做緩衝區。如果咱們一見魚缸裡面水抽乾了就立馬關了水幫浦,這時會發現水管裡還有來不及通過水幫浦流向下水道的殘留水,我們可以把抽水當做讀資料,排水當做寫資料,水管當做緩衝區,這樣就容易明白了。

那麼這樣一來我們如果中途呼叫close()方法輸出區也還是有資料的,就像水缸裡有水,只是在緩衝區遺留了一部分,這時如果我們先呼叫flush()方法,就會強制把資料輸出,快取區就清空了,最後再關閉讀寫流呼叫close()就完成了。

緩衝區可以簡單地理解為一段記憶體區域。可以簡單地把緩衝區理解為一段特殊的記憶體。某些情況下,如果乙個程式頻繁地操作乙個資源(如檔案或資料庫),則效能會很低,此時為了提公升效能,就可以將一部分資料暫時讀入到記憶體的一塊區域之中,以後直接從此區域中讀取資料即可,因為讀取記憶體速度會比較快,這樣可以提公升程式的效能。

flush 清空檔案快取區

緩衝區 cpu 一級快取 二級快取 快取 import time f open 2.txt a encoding utf 8 f.write helloworld n f.write helloworld n f.write helloworld n f.write helloworld n f.w...

python中的關於重新整理快取區flush的問題

flush是快取區的意思,你的輸入輸出一般並不會直接輸入輸出,而是存在乙個叫做快取區的地方 以標準輸入輸出中的先來舉例,對於標準輸入輸出中的顯示,在你鍵盤輸入內容之後,內容並不會立即顯示到顯示器,而會儲存到快取區中,除非 flush的快取已經滿了,它會自動輸出遇到換行符程式被終止 比如import ...

c c 常見的清空輸入快取區用法

c 清空快取區經常用的函式 include std cin.fail 該函式返回值bool型別,當輸入的資料型別不匹配時,該函式返回值為false此時無法從輸入快取區取值.std cin.clear 該函式的作用為清除錯誤標誌,表示std cin 資料型別 可以繼續從輸入快取區讀取資料 std sy...