解压zip文件出错!java.lang.IllegalArgumentException
行近远山 2006-12-09 06:39:50 错误完整的报告如下:
java.lang.IllegalArgumentException
at java.util.zip.ZipInputStream.getUTF8String(ZipInputStream.java:299)
at java.util.zip.ZipInputStream.readLOC(ZipInputStream.java:238)
at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:73)
at cn.qtone.cxyx.cp.pubFun.Decompress.unzip(Decompress.java:55)
at cn.qtone.cxyx.cp.pubFun.Decompress.decompress(Decompress.java:25)
at cn.qtone.cxyx.cp.nrkgl.Content.serviceAction(Content.java:166)
at cn.qtone.cxyx.cp.nrkgl.Content.doGet(Content.java:142)
at cn.qtone.cxyx.cp.nrkgl.Content.doPost(Content.java:408)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:154)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterC
hain.java:106)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain
.java:178)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocatio
n.java:229)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:267
)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:388)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:490)
at com.caucho.util.ThreadPool.run(ThreadPool.java:423)
at java.lang.Thread.run(Thread.java:595)
在网上也找到了相应的解决办法,但是不成功~~~流汗~~搞了一天了~~~郁闷啊~~~~
网上解决方法是:
4.新增member,这个member记录编码方式
private String encoding="UTF-8";
5.再新增一个建构式如下(这个建构式可以让这个class在new的时候,设定档名的编码)
public CZipInputStream(InputStream in,String encoding) {
super(new PushbackInputStream(in,512),new Inflater(true),512);
usesDefaultInflater = true;
if(in == null) {
throw new NullPointerException("in is null");
}
this.encoding=encoding;
}
6.找到ZipEntry e = createZipEntry(getUTF8String(b, 0, len));这一行,将它改成如下:
ZipEntry e=null;
try
{
if (this.encoding.toUpperCase().equals("UTF-8"))
e=createZipEntry(getUTF8String(b, 0, len));
else
e=createZipEntry(new String(b,0,len,this.encoding));
}
catch(Exception byteE)
{
e=createZipEntry(getUTF8String(b, 0, len));
}
但是,我这边就是不行,在创建对象这一步挂了
resin没有任何提示,也没有执行下面的语句~~~
高手请指教啊