java.io.EOFException: неожиданный конец входного потока ZLIB

Привет, ребята, тестируя мой инструмент извлечения tar.gz, я обнаружил выброшенное исключение:

java.io.EOFException: неожиданный конец входного потока ZLIB
    в java.util.zip.InflaterInputStream.fill(Неизвестный источник)
    в java.util.zip.InflaterInputStream.read(Неизвестный источник)
    at java.util.zip.GZIPInputStream.read(неизвестный источник)
    at sun.nio.cs.StreamDecoder.readBytes(неизвестный источник)
    at sun.nio.cs.StreamDecoder.implRead(неизвестный источник)
    at sun.nio.cs.StreamDecoder.read(неизвестный источник)
    at java.io.InputStreamReader.read(Неизвестный источник)
    at java.io.BufferedReader.fill(Неизвестный источник)
    at java.io.BufferedReader.readLine(неизвестный источник)
    at java.io.BufferedReader.readLine(неизвестный источник)
    at it.uniroma2.informatica.specialistica.IO.ScanCompressedFileUtil.main(ScanCompressedFileUtil.java:60

Итак, код в строке 60:

BufferedReader bufLe= reader.remove();
try {
  while ( bufLe.ready() ){
    System.out.println(" "+bufLe.readLine());
  }
} catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}

где вызывает buffer.readLine (), выдает исключение. Когда я открывал tar.gz, я сохранял поток всех отдельных файлов, например BuffReader, затем помещал их в связанный список, а затем закрывал буфер открытого файла tar.gz. Но когда я вставляю элемент в связанный список, а затем пытаюсь читать построчно. У меня есть исполнение..

У кого-то есть IDEa, почему у меня есть исключение??? Может быть, я ошибаюсь, когда перебираю файлы в tar.gz?? для этого у меня есть код:

TarInputStream is =  new TarInputStream(gzipInputStream);

TarEntry entryx = null;

try {
  while((entryx = is.getNextEntry()) != null) {
    InputStream tmpInx = new StreamingTarEntry(is,  entryx.getSize());
    // questo viene invocato perchè il file da lettere è un file txt
    manageTxtinsideTAR(tmpInx , buffer);
    // I add the stream to a linked list

Класс STREAMINGTARENTRY расширяет FilterInputStream, поэтому он только оборачивает поток.

1 ответ

Это может быть связано с ошибкой JVM http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=53ede10dc8803210b03577eac43?bug_id=6519463

Смотрите мой ответ для более подробной информации по этому связанному вопросу /questions/43046023/java-extract-zip-neozhidannyij-konets-vhodnogo-potoka-zlib/43046025#43046025

Другие вопросы по тегам