你如何解压缩java中的zip?

时间:2013-02-06 23:22:41

标签: java

我想知道,你如何在java中解压缩zip文件?

我第一次尝试:

String source = "forge.zip";
String destination = "some/destination/folder";
try {
    zipFile = new ZipFile(source);
    zipFile.extractAll(destination);
    } catch (ZipException e) {
     e.printStackTrace();
    }

它表示zpFile没有extractAll方法。 这是真的吗?

1 个答案:

答案 0 :(得分:1)

我不知道你有什么问题。但是我在ZipInputStreamZipEntry s之前已经多次这样做了,我知道这会有效:

File dir = new File(destDir);

if(!dir.exists()) dir.mkdirs();
FileInputStream fis;

byte[] buffer = new byte[1024];
try {
    fis = new FileInputStream(zipFilePath);
    ZipInputStream zis = new ZipInputStream(fis);
    ZipEntry ze = zis.getNextEntry();

    while(ze != null){
        String fileName = ze.getName();
        File newFile = new File(destDir + File.separator + fileName);

        new File(newFile.getParent()).mkdirs();
        FileOutputStream fos = new FileOutputStream(newFile);
        int len;

        while ((len = zis.read(buffer)) > 0) {
            fos.write(buffer, 0, len);
        }

        fos.close();
        zis.closeEntry();
        ze = zis.getNextEntry();
    }
    zis.closeEntry();
    zis.close();
    fis.close();

} catch (IOException e) {
    e.printStackTrace();
}