Цитирование javadoc для read () :
Возвращает:
общее количество байтов, считанных в буфер, или -1, если естьбольше нет данных, потому что достигнут конец потока.
Ваш код просто , а не для проверки этого результата.Вы предполагаете , что все байты были прочитаны, и это просто не работает (иногда).
Другими словами: всегда всегда всегда, когда вы вызываете какой-то метод read()
, который возвращает такойзначение, ваш код абсолютно должен проверить результат, чтобы убедиться, что (ожидаемые) данные действительно были получены при чтении.
Скорее всего, это является частью вашей проблемы.Но чтобы быть действительно уверенным, вам нужно дополнить свой вопрос дополнительной информацией.