JAVA解压缩ZIP包问题:

privatestaticvoidextZipFileList(Stringzipfile,StringdestDir)throwsYssException{destDi... private static void extZipFileList(String zipfile, String destDir) throws YssException{
destDir = destDir.endsWith("\\") ? destDir : destDir + "\\";
byte b[] = new byte[512];
int length;
ZipFile zipFile;
String encoding="utf-8";
try {
zipFile = new ZipFile(new File(zipfile),"GBK");
Enumeration enumeration = zipFile.getEntries();
ZipEntry zipEntry = null;
while (enumeration.hasMoreElements()) {
zipEntry = (ZipEntry) enumeration.nextElement();
File loadFile = new File(destDir + zipEntry.getName());
if (zipEntry.isDirectory()) {
loadFile.mkdirs();
} else {
if (!loadFile.getParentFile().exists())
loadFile.getParentFile().mkdirs();
OutputStream outputStream = new FileOutputStream(loadFile);
InputStream inputStream = zipFile.getInputStream(zipEntry);
while ((length = inputStream.read(b)) > 0){
outputStream.write(b,0,length);
}

}
}
} catch (IOException e) {
throw new YssException("解压文件失败!",e);
}
}
用以上方法解压缩ZIP包,为什么一执行到inputStream.read(b)就报如下异常:
invalid block type
求高手帮忙。万分感激。
文件路径和解压目录都没有问题。
急急急。分不多了,只能给5分。望高手指点。
展开
 我来答
百度网友845f74e61
2011-07-07 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1576万
展开全部
我试了一下,没有问题
先问一下,你用的JDK是什么版 本。我是1.6_20,直接用你的程序。
zipFile = new ZipFile(new File(zipfile),"GBK");
Enumeration enumeration = zipFile.getEntries();
是报错的。
我改成了
zipFile = new ZipFile(new File(zipfile));
Enumeration enumeration = zipFile.entries();

这应该不是主要问题。

有没有可能是你的压缩包损坏了。或是包里的那个文件坏了,跟一下断点,看一下是解那个文件出的错。
更多追问追答
追问
我是JDK1.4的,ZIP包里的文件是.CSV格式的。
追答
如果包不超过10M发到ding_h@neusoft.com
里吧我试试,如果你的文件不是保密的话。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式