Как BufferedOutputStream на самом деле работает на низком уровне?

Я понимаю теорию позадиBufferedOutputStream, Байты записываются в буферный массив до тех пор, пока он не будет заполнен, а затем записываются (сбрасываются) в базовый поток - идея заключается в том, что это быстрее, чем запись побайтно, поскольку меньше вызовов ОС.

Тем не менее, глядя на реализациюBufferedOutputStream класс и методы (BufferedOutputStream.java), похоже, что в конечном итоге байты из буфера просто записываются побайтово.

Я думаю, что это так, потому что:

В BufferedOutputStream.write (byte b [], int off, int len) он имеет строку out.write (b, off, len). Поскольку out является экземпляром OutputStream, но не BufferedOutputStream, он вызывает OutputStream.write (byte [], int, int). Это в свою очередь использует цикл for для записи побайтно

Пожалуйста, кто-нибудь может уточнить, что на самом деле происходит, и как это быстрее?

Ответы на вопрос(4)

Ваш ответ на вопрос