Подтвердить что ты не робот

BufferedOutputStream vs ByteArrayOutputStream

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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