使用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
效率,我错过了什么?
答案 0 :(得分:2)
BufferedOutputStream
会更有效率:它会对写入进行批量处理,直到它有足够的"数据
如果你一次性写完所有内容,那就没有区别了,因为总有足够的数据来填充缓冲区;或者您已达到数据的末尾,需要关闭流。