生成本地zip压缩包工具类
来源:互联网 发布:网络博客行业 编辑:程序博客网 时间:2024/06/01 14:31
1:
package com.test.ftpUtil;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;import com.yeepay.g3.utils.common.log.Logger;import com.yeepay.g3.utils.common.log.LoggerFactory;public class ZipUtil {private static final Logger LOGGER = LoggerFactory.getLogger(ZipUtil.class); /** * 压缩文件 * * @param sourceFilePath 要压缩文件路径,要压缩文件路径必须存在 * @param zipFilePath zip包存放路径,存放压缩路径可以不存在 * @param fileName zip包名 * @return */ @SuppressWarnings("resource")public static boolean fileToZip(String sourceFilePath, String zipFilePath, String fileName) { File sourceFile = new File(sourceFilePath); FileInputStream fis; BufferedInputStream bis = null; FileOutputStream fos; ZipOutputStream zos = null; if (!sourceFile.exists()) { LOGGER.error("打包目录不存在!"); return false; } else { try { FileUtil.checkFolder(zipFilePath); File zipFile = new File(zipFilePath + "/" + fileName + ".zip"); if (zipFile.exists()) { LOGGER.info("[{}]目录下已存在名字为:[{}].zip打包文件, 删除!", zipFilePath, fileName); zipFile.delete(); } File[] sourceFiles = sourceFile.listFiles(); if (null == sourceFiles || sourceFiles.length < 1) { LOGGER.info("待压缩的文件目录{},里面不存在文件,无需压缩", sourceFilePath); return false; } 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++) { if (sourceFiles[i].isFile()) { //创建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 (Throwable e) { LOGGER.error("压缩异常", e); return false; } finally { //关闭流 try { if (null != bis) bis.close(); if (null != zos) zos.close(); } catch (IOException e) { LOGGER.error("压缩异常", e); return false; } } } return true; } public static void main(String[] args) { //System.out.println(fileToZip("/Users/yp-tc-m-7129/2017","/Users/yp-tc-m-7129/2018","aaa")); System.out.println(fileToZip("/Users/yp-tc-m-7129/2017","/Users/yp-tc-m-7129/2019/a","aaa")); }}
阅读全文
0 0
- 生成本地zip压缩包工具类
- ZipUtil 压缩包工具类
- 解压、重命名、删除压缩包工具类
- Java压缩、解压缩、添加文件到压缩包工具类
- java中将文件打成压缩包工具类filetozip
- js生成.zip压缩包并保存到本地
- java打压缩包工具方法分享
- php生成压缩zip文件的类
- Java 生成zip压缩包
- PHP生成zip压缩包
- PHP生成zip压缩包
- JAVA I/O流 (三)--一个创建和解压缩zip文件的小工具类Zip
- Java动态打Jar包工具类
- zip php压缩类
- 小工具抓包工具
- java中生成和解压缩zip文件
- java-压缩目录生成ZIP包
- java打包文件生成zip压缩包
- web页面html中常用的特殊符号大全-可以直接用到页面里
- 深度学习笔记——深度学习框架TensorFlow(五)[TensorFlow大规模线性模型教程]
- WSDL实例解析
- Change a pointer
- 【math】7、输入一个数字,倒着输出
- 生成本地zip压缩包工具类
- UML关系明确解释
- HDFS文件导出本地合并为一个文件
- Block基本用法
- 322. Coin Change
- 责任链模式综述(基础篇)
- import和require
- 前端图片预览,上传前预览,兼容IE7、8、9、10、11,FIREFOX,CHROME
- 压缩包为什么比文件夹,传输速度快?