Используя методы putXXX, такие как ByteBuffer, и имея гибкий размер, такой как ByteArrayOutputStream?

#kotlin

#котлин

Вопрос:

Похоже, что ByteBuffer у него есть различные putXXX методы для добавления данных различных типов в виде байтов, но размер буфера фиксирован и ByteArrayOutputStream не имеет фиксированного размера, но ему не хватает putXXX методов.

Что делать, если я хочу динамически добавлять различные типы переменных в виде байтов в буфер и получать массив байтов? Существует ли класс, обладающий функциями обоих вышеупомянутых классов? Или единственный способ-создать ByteBuffer с размером, который кажется достаточным, и продолжать проверять оставшийся размер, прежде putXXX чем, и если этого размера недостаточно, создать новый ByteBuffer и скопировать в него данные до сих пор?