FileoutputStream
關(guān)于BufferedOutputStream和FileOutputStream的批量讀取字節(jié)的方法的效率對比。 這里每次FileOutputStream其實(shí)是把數(shù)據(jù)寫入了內(nèi)存,然后flush()方法后才發(fā)送給文件,如果這里不用flush()方法,那個(gè)那些寫入內(nèi)存中的數(shù)據(jù)會(huì)系統(tǒng)會(huì) 自動(dòng)的判斷什么時(shí)候該發(fā)送,當(dāng)達(dá)到某一個(gè)值的時(shí)候,否則,會(huì)在最后close()方法后發(fā)送出去,這樣的效率也是很高的。 而批量讀取就取決于每次讀取和寫入的byte[]的大小了。
2015-01-31
不用flush()的方法容易造成數(shù)據(jù)丟失。使用輸出流發(fā)送數(shù)據(jù)時(shí),當(dāng)數(shù)據(jù)不能填滿輸出流的緩沖區(qū)時(shí),這時(shí)數(shù)據(jù)就會(huì)被存儲(chǔ)在輸出流的緩沖區(qū)中。如果我們這個(gè)時(shí)候調(diào)用關(guān)閉(close)輸出流,存儲(chǔ)在輸出流的緩沖區(qū)中的數(shù)據(jù)就會(huì)丟失。所以說,關(guān)閉(close)輸出流時(shí),應(yīng)先刷新(flush)緩沖的輸出流。