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