解压特定zip压缩文件中特定文件,Java

Posted zhangphil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解压特定zip压缩文件中特定文件,Java相关的知识,希望对你有一定的参考价值。

解压特定zip压缩文件中指定文件,Java

有些时候,zip压缩文件特别大动辄几GB,但是只想要其中某一个特定文件,此时就完全没必要把全量文件都解压出来,只需解压指定文件即可。

public static void decompress(String targetFileName, String srcPath, String destPath) throws Exception 
        File file = new File(srcPath);
        if (!file.exists()) 
            throw new RuntimeException(srcPath + "不存在");
        

        ZipFile zf = new ZipFile(file);
        Enumeration entries = zf.entries();
        ZipEntry entry;
        while (entries.hasMoreElements()) 
            entry = (ZipEntry) entries.nextElement();
            String name = entry.getName();
            if (!name.endsWith(targetFileName)) 
                continue;
            

            File dir = new File(destPath);
            if (!dir.exists()) 
                dir.mkdirs();
            

            File f = new File(dir + File.separator + targetFileName);
            if (!f.exists()) 
                f.createNewFile();
            

            InputStream is = zf.getInputStream(entry);
            FileOutputStream fos = new FileOutputStream(f);

            int count;
            byte[] buffer = new byte[1024 * 8];
            while (true) 
                count = is.read(buffer);
                if (count == -1) 
                    break;
                

                fos.write(buffer, 0, count);
            

            is.close();
            fos.close();
        
    

上面功能函数首先从srcPath加载zip压缩文件,然后对zip压缩文件里面包含的每个文件进行过滤筛选,搜索到名字为targetFileName的文件后,将其解压到destPath目录文件夹下。

以上是关于解压特定zip压缩文件中特定文件,Java的主要内容,如果未能解决你的问题,请参考以下文章

在java中,gzip 压缩和解压多个文件?

将文件从 Zip 保存到特定文件夹

java解压zip文件至指定文件夹

JAVA压缩/解压ZIP/7Z文件

解压zip压缩文件,Java

java对 zip文件的压缩和解压(ant解决中文乱码)