我想要做的是从Web服务器下载文件。当我追踪代码时,两位程序员使用ByteArrayOutputStream和FileOutputStream以不同的方式下载相同场景中的文件。这些都是从内存使用和性能角度看,ByteArrayOutputStream vs FileOutputStream
案例1:使用
ByteArrayOutputStream
创建一个文件并下载。案例2:使用
FileOutputStream
暂时下创建的Web服务器文件并下载它,然后删除该文件。
PS:案例2文件大于案例1文件。
我可以在两种情况下使用ByteArrayOutputStream
吗?第二种情况下有没有打算使用FileOutputStream
?我想知道的是从表现和记忆的角度来看。提前致谢。
'ByteArrayOutputStream'在内存中,'FileOutputStream'是一个文件。影响是显而易见的。 'ByteArrayOutputStream'更快,但考虑下载一个10Gb文件......这似乎在程序中打开了一个很好的安全漏洞 - 只是给它一个大文件。 –
这一切都取决于您下载的文件的大小。 'ByteArrayOutputStream'适用于较小的文件。 – Santosh
把它们进行比较是荒谬的。在磁盘I/O速度下,除了内存,总线速度,没有磁盘,另一个只使用少量内存和根据需要使用尽可能多的磁盘外,其他任何内容都只使用内存。 – EJP