為什麼io關掉前要用flush

2021-09-23 01:55:27 字數 417 閱讀 6625

flush就是把緩衝區的東西向目標進行讀和寫。

有人肯定會問,那我直接close不行嗎?

假如你的緩衝區大小是15kb,而你剛剛好傳了15kb過去,那就沒問題,但如果你傳了20kb。那你就只傳了15kb。

因為緩衝區自動flush的觸發條件就是緩衝區滿了。沒有滿就不會觸發。

可以看下flush的底層**

publicclass bufferedoutputstream extends filteroutputstream

privatevoid flushbuffer() throws ioexception

}}

其實就是把在緩衝區的傳到目標地方。

當然如果你的io是沒用到緩衝的,可以不用flush,但我建議還是用,畢竟養成乙個良好的習慣還是不錯的。

為什麼要用 enable shared from

樓主 hma if you think you can,you can.panrainbow 憂鬱淡藍 於 tue nov 9 11 48 38 2010 提到 引入enable shared from this的原因是可以實現返回值為指向該類本身的 shared ptr,為什麼以this為拷貝構造...

為什麼要用補碼

在探求為何機器要使用補碼之前,讓我們先了解原碼,反碼和補碼的概念.對於乙個數,計算機要使用一定的編碼方式進行儲存.原碼,反碼,補碼是機器儲存乙個具體數字的編碼方式.原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 1 原 0000 0001 1 原 1000 ...

為什麼要用AndroidStudio

原因一 android studio是基於intellij idea開發的,所以android studio繼承了intellij idea的所有功能.原因二 android studio是谷歌開發的,專門用於android開發的編輯器,換句話說是親兒子,谷歌會把所有好吃的好用的先給親兒子.原因三 ...