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

package com.open1111.httpclient;
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 test2 {
      private test2(){}
     
      /**
      * 将存放在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:\\爬虫\\2" ;
           String zipFilePath = "D:\\爬虫" ;
           String fileName = "12700153file" ;
            boolean flag = test2. fileToZip ( sourceFilePath , zipFilePath , fileName );
            if ( flag ){
                System. out .println( "文件打包成功!" );
           } else {
                System. out .println( "文件打包失败!" );
           }
     }
     
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值