f36 2004年12月28日
关于通过Socket传送ZipInputStream出现的问题(请教)

//解压(文件解压)
public static void InflaterFile(String srcFile,String orginPath) throws IOException
{
FileInputStream fin = new FileInputStream(srcFile);
CheckedInputStream csumi = new CheckedInputStream(fin,new Adler32());
ZipInputStream zin = new ZipInputStream(csumi);
File orgin = new File(orginPath);
unzipFile(orgin,zin);
zin.close();
}
//Socket传递过来的InputStream
public static void InflaterFile(InputStream fin,String orginPath) throws IOException
{
CheckedInputStream csumi = new CheckedInputStream(fin,new Adler32());
ZipInputStream zin = new ZipInputStream(csumi);
File orgin = new File(orginPath);
unzipFile(orgin,zin);
}

//解压缩文件
private static void unzipFile(File orgin,ZipInputStream zin) throws IOException
{
ZipEntry entry = null;
while((entry = zin.getNextEntry())!=null)
{
File fout = new File(orgin,entry.getName());
if(FileEx.CreatePath(fout))
{
FileOutputStream out = new FileOutputStream(fout);
byte[] buf = new byte[1024];
int len = 0;
while ((len = zin.read(buf)) != -1)
out.write(buf, 0, len);
out.close();
}
zin.closeEntry();
}


该解压缩文件unzipFile正常,Socket传递的时unzipFile也能正常将文件解压出来,但是到最后一个文件完成后,entry = zin.getNextEntry() 应该为null,可是ZipInputStream 执行getNextEntry()就停在这里,也没异常抛出,类似死循环。
请教问题处在那里啊?
...全文
127 点赞 收藏 1
写回复
1 条回复

还没有回复,快来抢沙发~

发动态
发帖子
Java EE
创建于2007-09-28

3.7w+

社区成员

22.5w+

社区内容

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区公告
暂无公告