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

问题描述 投票:0回答:1

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

  1. ByteArrayOutputStreamFileOutputStream,即baos.writeTo(output);
  2. 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());
java arrays file memory-management bytearrayoutputstream
1个回答
0
投票

writeTo直接将其内部缓冲区写入OUT(即FileOutputStream),而write(bao.toByteArray())比writeTo花费的时间更长,因为您已正确分析。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.