Я создаю ByteArrayOutputStream barr = new ByteArrayOutputStream(1);
, то есть с емкостью 1 байт и записать в него более 1 байт barr.write("123456789000000".getBytes());
. Произошла ошибка, я проверяю длину barr
. Это 15. Почему мое письмо не было заблокировано или завернуто? Есть ли способ предотвратить запись больше, чем емкость, и для чего можно использовать outputstream
? Я очень ограничен в доступной памяти и не хочу писать там больше, чем мои ограничения определяютByteArrayOutputStream ограничение емкости
P.S. Большое спасибо за ответы! У меня был следующий до question Это может быть большим, если вы могли бы выглядеть
Согласно Javadoc, «Буфер автоматически растет, когда данные записываются». [Ссылка] (http://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayOutputStream.html) –
I.e - данная емкость является начальной? – Yakov
Исправить - int-параметр в конструкторе - это только начальный размер буфера массива. –