java中将文件打成压缩包工具类filetozip

来源:互联网 发布:淘宝店铺装修背景图 编辑:程序博客网 时间:2024/06/05 15:42

啥也不说了 直接上代码下来直接测试去吧 小伙伴 ———wanzuwodou

package com.leimingtech.admin.module.goods.controller;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;public class FileToZip {    private FileToZip() {      }      /**      * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的ZIP文件,并存放到zipFilePath。      * @param sourceFilePath 待压缩的文件路径      * @param zipFilePath    压缩后存放路径      * @param fileName       压缩后文件的名称      * @return flag      */      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;         }    /**      * 将文件打包成ZIP压缩文件,main方法测试      * @param args      */      public static void main(String[] args) {          String sourceFilePath = "G:\\test\\zdd";          String zipFilePath = "G:\\test";          String fileName = "1";          boolean flag = FileToZip.fileToZip(sourceFilePath, zipFilePath, fileName);          if(flag) {              System.out.println(">>>>>> 文件打包成功. <<<<<<");          } else {              System.out.println(">>>>>> 文件打包失败. <<<<<<");          }      }  }
0 0
原创粉丝点击