java.io.EOFException: неожиданный конец входного потока ZLIB - PullRequest
3 голосов
/ 27 февраля 2011

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

java.io.EOFException: Unexpected end of ZLIB input stream
    at java.util.zip.InflaterInputStream.fill(Unknown Source)
    at java.util.zip.InflaterInputStream.read(Unknown Source)
    at java.util.zip.GZIPInputStream.read(Unknown Source)
    at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
    at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
    at sun.nio.cs.StreamDecoder.read(Unknown Source)
    at java.io.InputStreamReader.read(Unknown Source)
    at java.io.BufferedReader.fill(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    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 Ответ

5 голосов
/ 17 сентября 2013

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

См. Мой ответ для более подробной информации по этому связанному вопросу https://stackoverflow.com/a/18845169/2463453

...