时间:2021-05-20
本文实例为大家分享了Java压缩解压缩工具类的具体代码,供大家参考,具体内容如下
package com.wdy.tools.utils.pressuitl; 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.io.InputStream;import java.io.OutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipFile;import java.util.zip.ZipInputStream;import java.util.zip.ZipOutputStream; import org.apache.commons.logging.Log; import com.wdy.tools.utils.LogUtil; /** * 压缩/解压缩工具类(zip格式) * * @author wdy * @date 2016-08-23 */public class PressUtil { private static final Log log = LogUtil.getLog(PressUtil.class); public static void main(String[] args) {// PressUtil.ZipMultiFile("d:\\nwp_trans\\nwp_h\\", "d:\\nwp_trans\\nwp_h\\wdy.zip"); String sourceFilePath = "d:\\nwp_trans\\nwp_h\\"; String zipFilePath = "d:\\nwp_trans\\nwp_h\\"; String fileName = "wdy"; boolean flag = PressUtil.fileToZip(sourceFilePath, zipFilePath, fileName); if(flag){ log.info("文件打包成功!"); }else{ log.info("文件打包失败!"); } } /** * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下 * @param sourceFilePath :待压缩的文件路径 * @param zipFilePath :压缩后存放路径 * @param fileName :压缩后文件的名称(不包括扩展名) * @return */ @SuppressWarnings("resource") 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){ log.info("待压缩的文件目录:"+sourceFilePath+"不存在."); }else{ try { File zipFile = new File(zipFilePath + "/" + fileName +".zip"); if(zipFile.exists()){ log.info(zipFilePath + "目录下存在名字为:" + fileName +".zip" +"打包文件."); }else{ File[] sourceFiles = sourceFile.listFiles(); if(null == sourceFiles || sourceFiles.length<1){ log.info("待压缩的文件目录:" + 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; } /** * 压缩单个文件 * @param filePath 要被压缩的文件的全路径,包含文件名d:/hello.txt * @param zipPath 压缩后的全路径,包含文件名d:/hello.zip */ public static void zipOneFile(String filePath, String zipPath) { try { File file = new File(filePath); File zipFile = new File(zipPath); InputStream input = new FileInputStream(file); ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile)); zipOut.putNextEntry(new ZipEntry(file.getName())); int temp = 0; while ((temp = input.read()) != -1) { zipOut.write(temp); } input.close(); zipOut.close(); } catch (Exception e) { e.printStackTrace(); } }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
python中zlib模块是用来压缩或者解压缩数据,以便保存和传输。它是其他压缩工具的基础。下面来一起看看python用模块zlib压缩与解压字符串和文件的方法
本文实例为大家分享了AndroidZip解压缩工具类的具体代码,供大家参考,具体内容如下packagecom.example.zip.commons.utils
若是使用Java自带的压缩工具包来实现解压缩文件到指定文件夹的功能,因为jdk提供的zip只能按UTF-8格式处理,而Windows系统中文件名是以GBK方式编
前言tar在linux上是常用的打包、压缩、加压缩工具,他的参数很多,这篇文章仅仅列举常用的压缩与解压缩参数,下面直接先上三个常用命令,一起来看看吧1、压缩当前
Android手机上经常要下载文件,有些是压纹包形式的,默认情况下根本打不开。此时你可以先到网上下载相应的压缩和解压缩软件,如ZIP压缩工具等工具众多工具有