Como o BufferedOutputStream realmente funciona em um nível baixo?

Eu entendo a teoria por trásBufferedOutputStream. Os bytes são gravados em uma matriz de buffer até ficarem cheios e depois gravados (liberados) no fluxo subjacente - a ideia é que é mais rápido do que escrever byte a byte, pois há menos chamadas do S

No entanto, olhando para a implementação doBufferedOutputStream classe e métodos BufferedOutputStream.java), parece que, em última análise, os bytes do buffer são apenas escritos byte a byt

Acho que é esse o caso porque:

In BufferedOutputStream.write (byte b [], int off, int len) possui a linha out.write (b, off, len). Como out é uma instância de OutputStream, mas não BufferedOutputStream, está chamando OutputStream.write (byte [], int, int). Por sua vez, usa um loop for para escrever byte a byte

Por favor, alguém poderia esclarecer o que realmente está acontecendo e como é mais rápid

questionAnswers(8)

yourAnswerToTheQuestion