關于幾種Output方法效率問題
FileOutputStream、DataOutputStream、BufferedOutputStream
老師你說的是BufferedOutputStream效率最高,可是結果卻是FileOutputStream的代碼只花了7毫秒,是怎么回事兒呢?
FileOutputStream、DataOutputStream、BufferedOutputStream
老師你說的是BufferedOutputStream效率最高,可是結果卻是FileOutputStream的代碼只花了7毫秒,是怎么回事兒呢?
2017-08-26
舉報
2017-08-27
引用woider所講的:
使用緩沖字節流復制確實是最快的方式,但對于小文件10M以下的文件體現不出優勢,對于百兆文件正確使用,時間可以控制到50ms內。視頻中的緩沖字節流使用有錯誤,復制文件最快的做法是將批量讀取到的字節數組使用緩沖寫入到文件,在機器性能范圍內字節數組越大越快。在循環寫入的過程中不需要使用flush,就像cwt8805說的,緩沖輸入流在關閉的時候會將所有緩沖區的數據全部寫入文件,使用flush刷新緩沖就失去了緩沖的意義。最后關閉IO流和文件流應該在finally中關閉,否則IO異常時執行不到close語句,IO流仍然沒有關閉。