菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
219
0

JAVA压缩ZIP文件

原创
05/13 14:22
阅读数 38783
public static void main(String[] args) throws IOException
    {
        String path = "F:\\HTML\\PAY";
        String zipFile = "F:\\HTML\\PAY\\zip_"+System.currentTimeMillis()+".zip";
        File dictionary = new File(path);
        
        File[] listFiles = dictionary.listFiles();
        ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
        zip(path,listFiles,zipOut);
        zipOut.flush();
        zipOut.close();
        System.out.println("Finished");
    }
    
    public static void zip(String root,File[] fileList, ZipOutputStream zipOut) throws IOException
    {
        
        ZipEntry ze = null;
        for (File file : fileList)
        {
            if (file.isDirectory())
            {
                zip(root,file.listFiles(), zipOut);
            }
            else
            {
                // 创建ZipEntry ,设置需加入压缩包的对象名称,为压缩后的文件设置名称
                String fileName = file.getParent().replace(root, "")+File.separator+file.getName();
                if(fileName.startsWith(File.separator)){
                    fileName = fileName.substring(1);
                }
                System.out.println(fileName);
                ze = new ZipEntry(fileName);
                ze.setSize(file.length());
                ze.setTime(file.lastModified());
                // 每一个被压缩的文件都用ZipEntry表示
                zipOut.putNextEntry(ze);
                
                FileInputStream fileInputStream = new FileInputStream(file);
                byte buffer[] = new byte[4096];
                for (int n = 0; -1 != (n = fileInputStream.read(buffer));)
                {
                    zipOut.write(buffer, 0, n);
                }
                fileInputStream.close();
            }
        }
    }

  

发表评论

0/200
219 点赞
0 评论
收藏