Есть ли какое-либо преимущество в обертывании BufferedOutputStream вокруг ByteArrayOutputStream вместо того, чтобы просто использовать ByteArrrayOutputStream отдельно?
BufferedOutputStream против ByteArrayOutputStream
Ответы (3)
Как правило, оболочка BufferedOutputStream в основном используется, чтобы избежать частых операций записи на диск или в сеть. Написать по отдельности много мелких кусков может быть намного дороже, чем сделать несколько довольно больших операций. ByteArrayOutputStream работает в памяти, поэтому я думаю, что упаковка бессмысленна.
Если вы хотите узнать точный ответ, попробуйте создать простое приложение для измерения производительности.
Абсолютно никаких. Хотя BufferedWriter и BufferedReader предлагают дополнительную функциональность, если вы работаете со строками.
ByteArrayOutputStream не рекомендуется, если вы хотите получить высокую производительность, но есть одна интересная функция — отправлять сообщения неизвестной длины. Чтобы лучше понять, как работают эти два метода, см. http://java-performance.info/java-io-bytearrayoutputstream/.