zoukankan      html  css  js  c++  java
  • Java—将文件压缩为zip文件

    import java.io.BufferedInputStream;  
    import java.io.BufferedOutputStream;  
    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;  
    
    /** 
     * 将文件夹下面的文件 
     * 打包成zip压缩文件 
     *  
     * @author hwt 
     * 
     */  
    public class FileToZip {  
      
        private FileToZip(){}  
        
        /** 
         * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下 
         * @param sourceFilePath :待压缩的文件路径 
         * @param zipFilePath :压缩后存放路径 
         * @param fileName :压缩后文件的名称 
         * @return 
         */  
        public static String fileToZip(String sourceFilePath,String zipFilePath,String fileName){  
            File sourceFile = new File(sourceFilePath);  
            FileInputStream fis = null;  
            BufferedInputStream bis = null;  
            FileOutputStream fos = null;  
            ZipOutputStream zos = null;  
            //判断源文件是否存在  
            if(!sourceFile.exists()){  
                System.out.println("待压缩的文件目录:"+sourceFilePath+"不存在.");  
            }else{  
                try {   
                    File zipFile = new File(zipFilePath + "/" + fileName +".zip");  
              //判断压缩后文件是否会重复
    if(zipFile.exists()){ System.out.println(zipFilePath + "目录下已存在名字为" + fileName +".zip" +"文件"); }else{
               //获取源文件夹下的所有文件 File[] sourceFiles
    = sourceFile.listFiles(); if(null == sourceFiles || sourceFiles.length<1){ System.out.println("待压缩的文件目录:" + sourceFilePath + "里面不存在文件,无需压缩."); }else{ fos = new FileOutputStream(zipFile); zos = new ZipOutputStream(new BufferedOutputStream(fos)); byte[] bufs = new byte[1024*10]; for(int i=0; i<sourceFiles.length; i++){ //创建ZIP实体,并添加进压缩包 ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName()); zos.putNextEntry(zipEntry); //读取待压缩的文件并写进压缩包里 fis = new FileInputStream(sourceFiles[i]); bis = new BufferedInputStream(fis, 1024*10); int read = 0; while((read=bis.read(bufs, 0, 1024*10)) != -1){ zos.write(bufs,0,read); } } } } } catch (FileNotFoundException e) { e.printStackTrace(); throw new RuntimeException(e); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } finally{ //关闭流 try { if(null != bis) bis.close(); if(null != zos) zos.close(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } } } return fileName + ".zip"; } public static void main(String[] args){ String sourceFilePath = "D:\source"; String zipFilePath = "D:\targetzip"; String fileName = "test"; String fn = FileToZip.fileToZip(sourceFilePath, zipFilePath, fileName); System.out.println(fn); } }
  • 相关阅读:
    max_input_vars 的影响
    php中定义网站根目录的常用方法
    phpstorm编辑器智能提示框架代码
    XunSearch(讯搜)的使用教程步骤
    xunsearch增量索引改进版
    在Windows7上安装coreseek3.2同时在PHP下简单实现步骤
    Linux下PHP+MySQL+CoreSeek中文检索引擎配置
    用js实现导航菜单点击切换选中时高亮状态
    jquery ajax POST 例子详解
    CentOS如何挂载硬盘
  • 原文地址:https://www.cnblogs.com/smart-hwt/p/8275381.html
Copyright © 2011-2022 走看看