以下哪种方法在内存利用率和性能方面更有效:
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());
答案 0 :(得分:0)
writeTo将直接的内部缓冲区直接写入OUT(即FileOutputStream),而write(bao.toByteArray())花费的时间比writeTo花费的时间要多(据您正确分析的话)。