繁体   English   中英

将ByteArrayOutputStream写入FileOutputStream vs将ByteArray写入FileOutputStream?

[英]Write ByteArrayOutputStream to FileOutputStream vs Write ByteArray to FileOutputStream?

以下哪种方法在内存利用率和性能方面更有效:

  1. ByteArrayOutputStream写入FileOutputStreambaos.writeTo(output); 要么
  2. ByteArrayOutputStream转换为ByteArray ,然后写入FileOutputStreamoutput.write(baos.toByteArray());

我已经分析并发现baos.toByteArray()方法在写入文件时占用更多内存,因为baos.toByteArray()创建了一个新分配的Byte数组。

请建议。 你认为使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM