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),放在哪速度都一樣,
求解釋原理
2016-09-12
一般都放到位置2.
2016-08-12
flush()是將緩沖區中的字節立即寫入目標對象(比如文件),一般用在帶緩沖的流中,你這個方法是不帶緩沖的,是否flush都一樣。
2016-07-04
flush需要在網絡傳輸的時候使用,避免在文件close之前還有東西在緩沖區中沒有讀完,看完意思之后你就應該發現放在位置2比較合適,因為說白了就是對付close的一個工具,他在while循環里面有什么意義呢,放close前即可,沒有必要太講究速度,知道原理選擇最正確的方式即可