java.util.zip解压问题
代码如下:
import java.io.*;
import java.util.zip.*;
public class UnZip {
static final int BUFFER = 2048;
public static void main (String argv[]) {
try {
BufferedOutputStream dest = null;
FileInputStream fis = new
FileInputStream("test.zip");
//System.out.println(fis.toString());
ZipInputStream zis = new
ZipInputStream(new BufferedInputStream(fis));
ZipEntry entry=null;
while((entry = zis.getNextEntry())!= null)
//好象就是这里的
//zis.getNextEntry()方法出了错,但不知道为什么?
{
System.out.println("Extracting: " +entry);
int count;
byte data[] = new byte[BUFFER];
// write the files to the disk
FileOutputStream fos = new
FileOutputStream(entry.getName());
dest = new
BufferedOutputStream(fos, BUFFER);
while ((count = zis.read(data, 0, BUFFER))
!= -1) {
dest.write(data, 0, count);
}
dest.flush();
dest.close();
}
zis.close();
} catch(Exception e) {
e.getMessage();
e.printStackTrace();
}
}
}
执行后报的异常为:
java.lang.IllegalArgumentException
at java.util.zip.ZipInputStream.getUTF8String(ZipInputStream.java:291)
at java.util.zip.ZipInputStream.readLOC(ZipInputStream.java:230)
at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:75)
at myzip.UnZip.main(UnZip.java:27)
请高手指点!!!