Привет, ребята, тестируя мой инструмент извлечения 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, поэтому он только оборачивает поток.