在FileOutputStream和BufferedOutputStream上测试write(byte [])

时间:2017-01-31 14:39:07

标签: java performance bufferedoutputstream

使用write(byte[])FileOutputStream中的BufferedOutputStream方法时是否存在实际性能差异?

我在HDD上测试了500 MB文件,结果是13秒和12秒:

try(FileOutputStream out = new FileOutputStream(filePath1)) {
            out.write(readBytes);
}

try(BufferedOutputStream out = new BufferedOutputStream( 
                           new FileOutputStream(filePath2))) {
            out.write(readBytes);
}

关于BufferedOutputStream效率,我错过了什么?

1 个答案:

答案 0 :(得分:2)

如果你一次只写一点点数据,那么

BufferedOutputStream会更有效率:它会对写入进行批量处理,直到它有足够的"数据

如果你一次性写完所有内容,那就没有区别了,因为总有足够的数据来填充缓冲区;或者您已达到数据的末尾,需要关闭流。