当前位置: 代码迷 >> J2SE >> Java ZipInputStream获取ZipEntry替null
  详细解决方案

Java ZipInputStream获取ZipEntry替null

热度:3502   发布时间:2013-02-25 00:00:00.0
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再试试看。
  相关解决方案