使用write(byte[])
和FileOutputStream
中的BufferedOutputStream
方法时,实际性能是否有所不同?
我在硬盘上都测试了写入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
效率缺少什么? 最佳答案
如果您一次写入一点数据,BufferedOutputStream
会更有效:它将批量写入,直到拥有“足够”的数据为止。
如果您要一次编写所有内容,则不会有什么区别,因为总是有足够的数据来填充缓冲区。或者您已经到达数据末尾,需要关闭流。