[英]Write ByteArrayOutputStream to FileOutputStream vs Write ByteArray to FileOutputStream?
Which one of below approach is more efficient in term of memory utilization & performance: 以下哪种方法在内存利用率和性能方面更有效:
ByteArrayOutputStream
to FileOutputStream
ie baos.writeTo(output);
ByteArrayOutputStream
写入FileOutputStream
即baos.writeTo(output);
or ByteArrayOutputStream
to ByteArray
and then write to FileOutputStream
ie output.write(baos.toByteArray());
ByteArrayOutputStream
转换为ByteArray
,然后写入FileOutputStream
即output.write(baos.toByteArray());
I have analysed and found that the 2nd approach is taking more memory while writing to file since baos.toByteArray()
creates a newly allocated Byte
array. 我已经分析并发现
baos.toByteArray()
方法在写入文件时占用更多内存,因为baos.toByteArray()
创建了一个新分配的Byte
数组。
Please suggest. 请建议。 Do you think is there any benifit of using
output.write(baos.toByteArray())
? 你认为使用
output.write(baos.toByteArray())
什么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花费的时间更长,因为您已正确分析。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.