Я понимаю, что такое буфер при записи в файл - запись в OS-файл (вызов нативного API - один вызов метода для одного символа) является дорогостоящей, поэтому в буфере собирается много символов / байтов и записывается буферк файлу с одним вызовом API OS.
Но какой здесь буфер?И почему?
ByteArrayOutputStream (int size) - Создает новый выходной поток массива байтов с емкостью буфера указанного размера в байтах.
ByteArrayOutputStream () имеет 32-байтовый буфер по умолчанию, поэтому у Apache Commons точно такой же класс org.apache.commons.io.output.ByteArrayOutputStream, отличающийся только размером буфера и механизмом: «ОригиналРеализация выделяет только 32 байта в начале. Так как этот класс предназначен для работы в тяжелых условиях, он начинается с 1024 байтов. В отличие от оригинала, он не перераспределяет весь блок памяти, а выделяет дополнительные буферы. Таким образом, буферы не должны быть мусоромсобранный и содержимое не должно быть скопировано в новый буфер. Этот класс разработан, чтобы вести себя точно так же, как оригинал. "
Кроме в ByteArrayInputStream(byte[] buf)
, как я понимаю," buf "(буфер) на самом деле является источником данных (байтов), которые должны быть переданы в InputStream (ByteArrayInputStream эмулирует InputStream из байтового массива), , поэтому, по моему мнению, буфер слов здесь сбивает с толку.