欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java使用java.util.zip将文件或是文件夹打包压缩成zip格式,java.util.zipzip,package cn.o

来源: javaer 分享于  点击 27462 次 点评:185

java使用java.util.zip将文件或是文件夹打包压缩成zip格式,java.util.zipzip,package cn.o


package cn.outofmemory.samples;import java.io.BufferedInputStream;import java.io.DataInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** *将文件或是文件夹打包压缩成zip格式 * @author ysc */public class ZipUtils {    private static final Logger log = LoggerFactory.getLogger(ZipUtils.class);    private ZipUtils(){};   /**     * 创建ZIP文件     * @param sourcePath 文件或文件夹路径     * @param zipPath 生成的zip文件存在路径(包括文件名)     */    public static void createZip(String sourcePath, String zipPath) {        FileOutputStream fos = null;        ZipOutputStream zos = null;        try {            fos = new FileOutputStream(zipPath);            zos = new ZipOutputStream(fos);            writeZip(new File(sourcePath), "", zos);        } catch (FileNotFoundException e) {            log.error("创建ZIP文件失败",e);        } finally {            try {                if (zos != null) {                    zos.close();                }            } catch (IOException e) {                log.error("创建ZIP文件失败",e);            }        }    }    private static void writeZip(File file, String parentPath, ZipOutputStream zos) {        if(file.exists()){            if(file.isDirectory()){//处理文件夹                parentPath+=file.getName()+File.separator;                File [] files=file.listFiles();                for(File f:files){                    writeZip(f, parentPath, zos);                }            }else{                FileInputStream fis=null;                DataInputStream dis=null;                try {                    fis=new FileInputStream(file);                    dis=new DataInputStream(new BufferedInputStream(fis));                    ZipEntry ze = new ZipEntry(parentPath + file.getName());                    zos.putNextEntry(ze);                    byte [] content=new byte[1024];                    int len;                    while((len=fis.read(content))!=-1){                        zos.write(content,0,len);                        zos.flush();                    }                } catch (FileNotFoundException e) {                    log.error("创建ZIP文件失败",e);                } catch (IOException e) {                    log.error("创建ZIP文件失败",e);                }finally{                    try {                        if(dis!=null){                            dis.close();                        }                    }catch(IOException e){                        log.error("创建ZIP文件失败",e);                    }                }            }        }    }        public static void main(String[] args) {        ZipUtils.createZip("D:\\workspaces\\netbeans\\APDPlat\\APDPlat_Web\\target\\APDPlat_Web-2.2\\platform\\temp\\backup", "D:\\workspaces\\netbeans\\APDPlat\\APDPlat_Web\\target\\APDPlat_Web-2.2\\platform\\temp\\backup.zip");        ZipUtils.createZip("D:\\workspaces\\netbeans\\APDPlat\\APDPlat_Web\\target\\APDPlat_Web-2.2\\platform\\index.jsp", "D:\\workspaces\\netbeans\\APDPlat\\APDPlat_Web\\target\\APDPlat_Web-2.2\\platform\\index.zip");    }}
相关栏目:

用户点评