輸出流的close和fush

2021-08-21 14:09:20 字數 613 閱讀 9060

整理自網上:輸出流的write方法只是將資料寫入緩衝區。部分流中close方法內會呼叫flush,將緩衝區內的資料寫入目標檔案。所以即使沒有close,僅僅flush也是可以保證檔案的正常寫入。如果沒有close也沒有flush,雖然已經在記憶體緩衝中寫入,但並沒有寫到文件中,所以就會出現目標檔案還是為空的情況。close可以節省記憶體,如果總是呼叫流,但不關閉,導致記憶體大量占用,程式崩潰。因為這些檔案資源是jvm不能自動**的。

對於流的關閉順序,一種是按照後建立流先關閉的原則

另一種直接關閉包裝流即可,例如:

bufferedreader reader =newbufferedreader(newinputstreamreader(newfileinputstream(

"a.txt")));

//這裡處理你的業務邏輯

reader.close();//在這裡關閉就把所有流都給關掉了,不需要再額外去關閉了

字元輸出流 flush和close方法的區別

字元輸出流的使用步驟 1 建立filewriter物件 2 把filewrite中的方法write,把資料寫入到記憶體緩衝區中 3 使用filewriter中的方法flush,把記憶體緩衝區的資料,重新整理到檔案中 4 釋放資源 public class demo06writer flush和clo...

shutdown和close的區別

當所有的資料操作結束以後,你可以呼叫close 函式來釋放該socket,從而停止在該socket上的任何資料操作 close sockfd 你也可以呼叫shutdown 函式來關閉該socket。該函式允許你只停止在某個方向上的資料傳輸,而乙個方向上的資料傳輸繼續進行。如你可以關 閉某socket...

IO流 輸入流和輸出流

1.輸入流和輸出流的聯絡和區別,字元流和位元組流的聯絡和區別 輸入流是得到資料,輸出流是輸出資料。字元流和位元組流是流的一種劃分,按處理照流的資料單位進行的劃分。兩類都分為輸入和輸出操作。在位元組流中輸出資料主要是使用outputstream完成,輸入使inputstream 在字元流中輸出主要是使...