Что я хочу сделать, это загрузить файл с веб-сервера. Когда я отслеживаю код, два программиста используют ByteArrayOutputStream и FileOutputStream по-разному, чтобы загрузить файл в том же сценарии. ЭтоByteArrayOutputStream vs FileOutputStream с точки зрения использования и производительности памяти
Случай 1: использовать
ByteArrayOutputStream
создать файл и загрузить его.Случай 2: использовать
FileOutputStream
временно создать файл в веб-сервере и загрузить его, а затем удалить этот файл.
PS: Дело 2 файла больше, чем в случае с файлом 1.
Могу ли я использовать ByteArrayOutputStream
в обоих случаях? Есть ли намерение использовать FileOutputStream
во втором случае? То, что я хочу знать, - с точки зрения производительности и памяти. Заранее спасибо.
'ByteArrayOutputStream' находится в памяти, а файл FileOutputStream - это файл. Последствия очевидны. 'ByteArrayOutputStream' быстрее, но рассмотрим возможность загрузки файла 10Gb ... Казалось бы, это откроет хорошее отверстие в программе - просто подайте его в большой файл. –
Все зависит от размера файла, который вы загружаете. 'ByteArrayOutputStream' хорош для файла меньшего размера. – Santosh
Смешно сравнивать их вообще. Один использует ничего, кроме памяти, на скорости шины и без диска, другой использует небольшую память и столько же дисков, сколько необходимо, на скорости ввода-вывода на диске. – EJP