Нет, ByteArrayInputStream
оборачивает массив, он не копирует его. Из документации (конструктора, взяв byte[]
):
Создает ByteArrayInputStream, чтобы он использовал buf в качестве своего буферного массива. Буферный массив не копируется. Начальное значение pos равно 0, а начальное значение count равно длине buf. * 1010 *
Возможно, что использует , входной поток скопирует его, но сам ByteArrayInputStream
не будет.
Я не уверен, что вы действительно волнуетесь по поводу особенно важной проблемы - я не думаю, что это вообще приведет к утечке памяти, если использовать только байтовый массив.