Home  >  Article  >  Java  >  Introduction to the method of compressing multiple files in java (code example)

Introduction to the method of compressing multiple files in java (code example)

不言
不言forward
2019-02-21 14:22:122817browse

This article brings you an introduction to the method of compressing multiple files in Java (code examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

First create a tool class and define the interface. Parameters here
1: fileList: path name of multiple files
2: zipFileName: compressed file name

The following is the code, the comments are very detailed

public class ZIPUtil {
    
    public static String createZipFile(ArrayList<String> fileList, String zipFileName) {

        if(fileList == null || fileList.size() == 0 || CommonUtil.isEmpty(zipFileName)){
            return null;
        }
        
        //构建压缩文件File
        File zipFile = new File(zipFileName);
        //初期化ZIP流
        ZipOutputStream out = null;

        try{
            //构建ZIP流对象
            out = new ZipOutputStream(new FileOutputStream(zipFile));
            //循环处理传过来的集合
            for(int i = 0; i < fileList.size(); i++){
                //获取目标文件
                File inFile = new File(fileList.get(i));
                if(inFile.exists()){
                     //定义ZipEntry对象
                     ZipEntry entry = new ZipEntry(inFile.getName());
                     //赋予ZIP流对象属性
                     out.putNextEntry(entry);
                     int len = 0 ;
                     //缓冲
                     byte[] buffer = new byte[1024];
                     //构建FileInputStream流对象
                     FileInputStream fis;
                     fis = new FileInputStream(inFile);
                     while ((len = fis.read(buffer)) > 0) {
                         out.write(buffer, 0, len);
                         out.flush();
                     }
                     //关闭closeEntry
                     out.closeEntry();
                     //关闭FileInputStream
                     fis.close();
                }
            }
        }catch (IOException e) {
            e.printStackTrace();
        }finally{
             try {
                 //最后关闭ZIP流
                 out.close();
             } catch (IOException e) {
                 e.printStackTrace();
             }
        }


        return zipFileName;

    }
}

The above is the detailed content of Introduction to the method of compressing multiple files in java (code example). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete