Compression java.util.zip.ZipException:解压缩时距离太远无效

Compression java.util.zip.ZipException:解压缩时距离太远无效,compression,Compression,util.zip.ZipException:无效距离太远当我解压缩数据时,此异常发生在此行 zipInput = new GZIPInputStream(fis); bis = new BufferedInputStream(zipInput); bis.read(buffer);//here exception occurs 请帮忙。这个档案确实已经损坏了。您可以从字节中形成输入流: InputStream bStream=newbytearrayinputstream(字节); 或从文件

util.zip.ZipException:无效距离太远当我解压缩数据时,此异常发生在此行

zipInput = new GZIPInputStream(fis);
bis = new BufferedInputStream(zipInput);
bis.read(buffer);//here exception occurs

请帮忙。

这个档案确实已经损坏了。您可以从字节中形成输入流:

InputStream bStream=newbytearrayinputstream(字节);
或从文件:

InputStream bStream=新文件InputStream(fis);
ByteArrayOutputStream bOutStream=新的ByteArrayOutputStream();
试一试{
GZIPInputStream gis=新的GZIPInputStream(b流);
字节[]缓冲区=新字节[1];
内伦;
在某个迭代周期中,系统将损坏

while((len=gis.read(buffer))!=-1){
写入(缓冲区,0,len);
}
bOutStream.close();
gis.close();
}捕获(IOE异常){
e、 printStackTrace();
bOutStream.close();
//打印未归档的字节
System.out.println(新字符串(bOutStream.toByteArray());
}
这就是为什么它有助于找到腐败的地方。
在此位置之前的所有字节都将正确显示。

那么压缩数据已损坏。这不一定是真的。当数据分析错误时会抛出错误。这就是压缩数据损坏的原因。