Как все уже знают, Java выделяет размер массива при объявлении. Это означает, что если я определить массив так:Как получить количество элементов в массиве байтов?
byte[] buffer = new byte[10];
buffer.length
вернется 10. Тем не менее, на мой вопрос, как я могу узнать, сколько элементов заполняются. Я заполняю элементы из InputStream
, поэтому я никогда не знаю, сколько будет элементов.
Я знаю, что выделенные позиции массива, которые пусты, будут 0
, но что делать, если я получаю нулевые значения от InputStream
, а также смешанные с нормальными значениями?
Вы не можете. Просто сохраните количество байтов, которое вы прочитали в переменной. InputStream.read() возвращает количество прочитанных байтов. Если вы разместили свой код, мы могли бы рассказать вам, как его лучше писать. –
Обычно методы, которые вы должны использовать для чтения _into_ массива 'byte', либо возвращали массив, содержащий только фактически прочитанный контент, либо возвращали количество прочитанных байтов. Таким образом, ваш прецедент - лучшая в лучшем случае. Как упоминал @JBNizet, вы никогда не показывали нам никакого кода. –
@ JBNizet, вы были правы. Я могу получить фактический размер, используя InputStream.read(). Оно работает! Супер. Пожалуйста, ответьте на мой вопрос, чтобы я мог отметить его как правильно. –