file.flush() 方法疑惑
int?num?=?0; ????????????while?((num?=?inf.read(buf))?!=?-1)?{ ????????????????outf.write(buf,?0,?num); ????????????????outf.flush();??//////////////////////////////位置1 ????????????} ???????????? ????????????????????????????????/////////////////////////////位置2 ????????????outf.close(); ????????????inf.close(); 放在兩處有什么區(qū)別 親測 當(dāng)文件小時(3M),放在while里面速度反而不如放在位置2、 當(dāng)文件特別大時(4G),放在哪速度都一樣, 求解釋原理
2016-09-12
一般都放到位置2.
2016-08-12
flush()是將緩沖區(qū)中的字節(jié)立即寫入目標(biāo)對象(比如文件),一般用在帶緩沖的流中,你這個方法是不帶緩沖的,是否flush都一樣。
2016-07-04
flush需要在網(wǎng)絡(luò)傳輸?shù)臅r候使用,避免在文件close之前還有東西在緩沖區(qū)中沒有讀完,看完意思之后你就應(yīng)該發(fā)現(xiàn)放在位置2比較合適,因?yàn)檎f白了就是對付close的一個工具,他在while循環(huán)里面有什么意義呢,放close前即可,沒有必要太講究速度,知道原理選擇最正確的方式即可