java多態(tài)的概念 OutputStream的flush方法?什么調(diào)用?
OutputStream的flush方法?什么調(diào)用?Java IO stream flush()方法JDK定義:public void flush()拋出IOException刷新輸出流并強制寫出所有
OutputStream的flush方法?什么調(diào)用?
Java IO stream flush()方法JDK定義:public void flush()拋出IOException刷新輸出流并強制寫出所有緩沖的輸出字節(jié)。flush的常規(guī)約定是,如果此輸出流的實現(xiàn)緩沖了任何先前寫入的字節(jié),則調(diào)用此方法,以指示應(yīng)立即將它們寫入其預(yù)期目標(biāo)。如果此流的預(yù)期目標(biāo)是底層操作系統(tǒng)提供的抽象(如文件),則刷新此流只能保證先前寫入流的字節(jié)將傳遞給操作系統(tǒng)進(jìn)行寫入,但不能保證這些字節(jié)實際上可以寫入物理設(shè)備(如磁盤驅(qū)動器)。OutputStream的flush方法不執(zhí)行任何操作。說明符:flush in interface flush throws:IOException-如果發(fā)生I/O錯誤。
為什么關(guān)閉一個緩沖區(qū)輸出流之前應(yīng)使用flush方法?
文件I/O編程中的sync、fsync和fdatasync功能
flush()的用法?
您指的是flush()功能。Flush()是強制輸出緩沖區(qū)中的數(shù)據(jù)(注意不要與Flush()混淆),主要用于io,即清除緩沖區(qū)數(shù)據(jù)。通常,在讀寫流時,數(shù)據(jù)首先讀入內(nèi)存,然后寫入文件。當(dāng)您讀取完數(shù)據(jù)后,并不意味著您的數(shù)據(jù)已經(jīng)被寫入,因為內(nèi)存緩沖區(qū)中仍有一部分可能被保留。此時,如果調(diào)用close()方法來關(guān)閉讀/寫流,那么這部分?jǐn)?shù)據(jù)將丟失,因此應(yīng)該在關(guān)閉讀/寫流之前刷新()。