我想要做的是從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