我想要做的是从Web服务器下载文件。当我跟踪代码时,两个程序员以不同的方式使用ByteArrayOutputStream和FileOutputStream来下载同一场景中的文件。这些是
案例1 :使用ByteArrayOutputStream
创建文件并下载。
案例2 :使用FileOutputStream
在网络服务器下临时创建文件并下载,然后删除此文件。
PS:案例2文件大于案例1文件。
我可以对这两种情况使用ByteArrayOutputStream
吗?在第二种情况下是否有意使用FileOutputStream
?我想知道的是从性能和内存的角度来看。提前谢谢。
答案 0 :(得分:2)
结合Boris The Spider's和Peter Lawrey的回答:
ByteArrayOutputStream
在内存中,FileOutputStream
是一个文件。其影响是显而易见的。 ByteArrayOutputStream
速度更快,但考虑下载一个10Gb的文件...这似乎在程序中打开了一个很好的安全漏洞 - 只需输入一个大文件。
此外,ByteArrayOutputStream
限制在2GB以下,因为它使用byte []