亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

file.flush() 方法疑惑

int?num?=?0;
????????????while?((num?=?inf.read(buf))?!=?-1)?{
????????????????outf.write(buf,?0,?num);
????????????????outf.flush();??//////////////////////////////位置1
????????????}
????????????
????????????????????????????????/////////////////////////////位置2
????????????outf.close();
????????????inf.close();
放在兩處有什么區別
親測
當文件小時(3M),放在while里面速度反而不如放在位置2、
當文件特別大時(4G),放在哪速度都一樣,
求解釋原理

正在回答

3 回答

一般都放到位置2.

0 回復 有任何疑惑可以回復我~

flush()是將緩沖區中的字節立即寫入目標對象(比如文件),一般用在帶緩沖的流中,你這個方法是不帶緩沖的,是否flush都一樣。

0 回復 有任何疑惑可以回復我~

flush需要在網絡傳輸的時候使用,避免在文件close之前還有東西在緩沖區中沒有讀完,看完意思之后你就應該發現放在位置2比較合適,因為說白了就是對付close的一個工具,他在while循環里面有什么意義呢,放close前即可,沒有必要太講究速度,知道原理選擇最正確的方式即可

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
文件傳輸基礎——Java IO流
  • 參與學習       133841    人
  • 解答問題       1060    個

為您介紹IO流的使用,以及對象的序列化和反序列化的內容

進入課程

file.flush() 方法疑惑

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號