以下哪种方法在内存利用率和性能方面更有效:
ByteArrayOutputStream
到FileOutputStream
,即baos.writeTo(output);
或ByteArrayOutputStream
转换为ByteArray
,然后写入FileOutputStream
,即output.write(baos.toByteArray());
我已经分析并发现第二种方法在写入文件时占用更多内存,因为baos.toByteArray()
创建了一个新分配的Byte
数组。
请建议。你认为使用output.write(baos.toByteArray())
有什么好处吗?
FileOutputStream output = new FileOutputStream(path);
ByteArrayOutputStream baos = getBaos();
baos.writeTo(output);
//output.write(baos.toByteArray());
writeTo直接将其内部缓冲区写入OUT(即FileOutputStream),而write(bao.toByteArray())比writeTo花费的时间更长,因为您已正确分析。