将文件夹下面的文件打包成zip

<span style="font-size: 18px; background-color: rgb(204, 204, 204);">package cn.gov.csrc.base.util;

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 admin
 *
 */
public final class FileToZip {

 private FileToZip(){}
 
 /**
  * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下
  * @param sourceFilePath :待压缩的文件路径
  * @param zipFilePath :压缩后存放路径
  * @param fileName :压缩后文件的名称
  * @return
  */
 public static boolean fileToZip(String sourceFilePath,String zipFilePath,String fileName){
  boolean flag = false;
  File sourceFile = new File(sourceFilePath);
  FileInputStream fis = null;
  BufferedInputStream bis = null;
  FileOutputStream fos = null;
  ZipOutputStream zos = null;
  
  if(sourceFile.exists() == false){
   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);
       }
      }
      flag = true;
     }
    }
   } 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 flag;
 }
 
 public static void main(String[] args){
  String sourceFilePath = "D:\\TestFile";
  String zipFilePath = "D:\\tmp";
  String fileName = "12700153file";
  boolean flag = FileToZip.fileToZip(sourceFilePath, zipFilePath, fileName);
  if(flag){
   System.out.println("文件打包成功!");
  }else{
   System.out.println("文件打包失败!");
  }
 }
 
}
</span>

 

转载自以下地址

http://blog.csdn.net/sxdtzhaoxinguo/article/details/20550537

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值