為什麼關閉一個緩衝區輸出流之前應使用flush方法?

SecondDream_1017發表於2018-08-14

這要搞清楚緩衝區的原理了,緩衝區其實就是封裝了一個陣列,對資料進行臨時緩衝,存滿後再集中對資料進行操作,這也是提高流運算元據效率的原因,當緩衝區存滿後會自動對資料進行操作,不重新整理也可以,但是如果不存滿就必須重新整理了才能把資料刷到目的地,打個比方,預設緩衝區大小是8k,如果你是用緩衝區操作10k的資料,你使用了flush方法那麼資料不會有丟失,但是如果沒有使用fulsh方法那麼得到得資料只有8k,剩下的2k會丟失,還有不明白的歡迎留言,一家之言各位有什麼高見歡迎多多指教

=================================================================================================

因為有一些IO流用的是緩衝方式:它有個緩衝區,一般得等到緩衝區滿才寫入檔案。動態呼叫flush則不管緩衝區滿不滿,立即寫到檔案。
如果最後緩衝區沒滿而關閉流,則會導致資料丟失

相關文章