BufferedOutputStream против ByteArrayOutputStream

Есть ли какое-либо преимущество в обертывании BufferedOutputStream вокруг ByteArrayOutputStream вместо того, чтобы просто использовать ByteArrrayOutputStream отдельно?


person Hank    schedule 25.07.2011    source источник


Ответы (3)


Как правило, оболочка BufferedOutputStream в основном используется, чтобы избежать частых операций записи на диск или в сеть. Написать по отдельности много мелких кусков может быть намного дороже, чем сделать несколько довольно больших операций. ByteArrayOutputStream работает в памяти, поэтому я думаю, что упаковка бессмысленна.

Если вы хотите узнать точный ответ, попробуйте создать простое приложение для измерения производительности.

person Binus    schedule 25.07.2011

Абсолютно никаких. Хотя BufferedWriter и BufferedReader предлагают дополнительную функциональность, если вы работаете со строками.

person Dunes    schedule 25.07.2011

ByteArrayOutputStream не рекомендуется, если вы хотите получить высокую производительность, но есть одна интересная функция — отправлять сообщения неизвестной длины. Чтобы лучше понять, как работают эти два метода, см. http://java-performance.info/java-io-bytearrayoutputstream/.

person DrLuck    schedule 21.02.2016