日期:2014-05-20  浏览次数:21183 次

Java ZipInputStream获取ZipEntry为null
做一个上传zip文件的东西。
代码如下:
@Test
public void testZip() throws Exception{
FileOutputStream fos = null;
ZipInputStream zis = null;
ZipEntry entry = null;
File inFile = new File("D:\\Archive.zip");
zis = new ZipInputStream(new FileInputStream(inFile));
while((entry=zis.getNextEntry())!=null){
  //始终进不到这里
System.out.println(entry.getName());
}
if(zis != null){
zis.close();
}
}
显示zis.getNextEntry()一直都是null。
但是zis不为null
D:\\Archive.zip 这个文件下面有5个.text文件。

------解决方案--------------------
另外:
java的zip解压缩不支持中文命名的ZipEntry,遇中文会报错或乱码。
可以考虑apache的的api。
------解决方案--------------------
5个txt文件里有中文文件名的吗?
有的话,试试楼上说的apache的api。
指定正确的encode再试试看。