ByteArrayOutputStream vs FileOutputStream从内存使用和性能的角度来看

时间:2013-07-24 13:35:41

标签: java file-io bytearray

我想要做的是从Web服务器下载文件。当我跟踪代码时,两个程序员以不同的方式使用ByteArrayOutputStream和FileOutputStream来下载同一场景中的文件。这些是

  • 案例1 :使用ByteArrayOutputStream创建文件并下载。

  • 案例2 :使用FileOutputStream在网络服务器下临时创建文件并下载,然后删除此文件。

PS:案例2文件大于案例1文件。

我可以对这两种情况使用ByteArrayOutputStream吗?在第二种情况下是否有意使用FileOutputStream?我想知道的是从性能和内存的角度来看。提前谢谢。

1 个答案:

答案 0 :(得分:2)

结合Boris The Spider's和Peter Lawrey的回答: ByteArrayOutputStream在内存中,FileOutputStream是一个文件。其影响是显而易见的。 ByteArrayOutputStream速度更快,但考虑下载一个10Gb的文件...这似乎在程序中打开了一个很好的安全漏洞 - 只需输入一个大文件。 此外,ByteArrayOutputStream限制在2GB以下,因为它使用byte []