我想要做的是从网络服务器下载文件。当我追踪代码时,两个程序员在同一场景下使用ByteArrayOutputStream和FileOutputStream以不同的方式下载文件。这些是:
- 情况1:使用ByteArrayOutputStream创建文件并下载它。 - 情况2:使用FileOutputStream在Web服务器下临时创建文件并下载它,然后删除该文件。
PS:情况2的文件比情况1的文件大。
我能否在这两种情况下都使用ByteArrayOutputStream?第二种情况使用FileOutputStream是否有意义?我想知道的是从性能和内存的角度来看。谢谢!
- 情况1:使用ByteArrayOutputStream创建文件并下载它。 - 情况2:使用FileOutputStream在Web服务器下临时创建文件并下载它,然后删除该文件。
PS:情况2的文件比情况1的文件大。
我能否在这两种情况下都使用ByteArrayOutputStream?第二种情况使用FileOutputStream是否有意义?我想知道的是从性能和内存的角度来看。谢谢!
ByteArrayOutputStream
存储于内存中,而FileOutputStream
则是存储于文件中。这带来的影响显而易见。ByteArrayOutputStream
更快,但考虑一下下载一个 10GB 的文件…… 这似乎会在程序中产生安全漏洞——只需输入一个大文件即可。 - Boris the Spider