Java ulfater иногда бесконечно зацикливаетсяJAVA

Программисты JAVA общаются здесь
Anonymous
Java ulfater иногда бесконечно зацикливается

Сообщение Anonymous »

В своем заявлении я пытаюсь сжать /декаментировать байтовые массивы, используя класс инлаутера /дефляции Java.
Вот часть кода, который я использовал сначала: < /p>

ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length);
byte[] buffer = new byte[1024];
while (!inflater.finished()) {
int count = inflater.inflate(buffer);
outputStream.write(buffer, 0, count);
}
< /code>

Затем после того, как я развернул код, он случайным образом (очень редко) приводит к тому, что все приложение висит, и когда я взял дамп потока, я могу идентифицировать, что один поток висит < /p>

at java.util.zip.Inflater.inflateBytes(Native Method)
at java.util.zip.Inflater.inflate(Inflater.java:259)
- locked java.util.zip.ZStreamRef@fc71443
at java.util.zip.Inflater.inflate(Inflater.java:280)
< /code>

Это случается не очень часто. Затем я погуглил повсюду и обнаружил, что это могут быть некоторые пустые данные байта, передаваемые в отдаче, и Froner () никогда не вернет True.while (!inflater.finished())
< /code>

Чтобы определить, закончится ли он, я использовал < /p>

while (inflater.getRemaining() > 0)
< /code>

Но это случилось снова.
Теперь мне задается вопросом, какая реальная причина вызывает проблему. Не должно было пройти пустой массив в усвоении, даже если он это сделал, почему метод getRemaing () не сломал цикл Whance?
Кто -нибудь может помочь, пожалуйста? Это действительно меня беспокоит.

Подробнее здесь: https://stackoverflow.com/questions/553 ... -sometimes

Вернуться в «JAVA»