5

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

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

  • 案例2:用于FileOutputStream在web服务器下临时创建一个文件并下载后删除该文件。

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

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

4

1 回答 1

2

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

于 2014-10-14T15:12:27.557 回答