java写的将文件或文件夹打包成zip的工具类
来源:互联网 发布:mac关机快捷键是什么 编辑:程序博客网 时间:2024/05/18 22:54
一、概要
由于笔者在开发中会涉及到对文件和文件夹的打包操作,所有自己写了一个工具类用于打包文件
二、老规矩,直接上源码
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 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+"不存在."); sourceFile.mkdir(); // 新建目录 } 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; } }
三、调用示例
//文件对象File file = new File();//也可以是文件夹路径//待生成的zip包名String zipName = new Date().getTime()+GetRandom.getRandomInteger(6);//待生成的zip保存路径String zipFilePath = "../xx/xx";//压缩FileToZip.fileToZip(file , zipFilePath , zipName);
阅读全文
0 0
- java写的将文件或文件夹打包成zip的工具类
- 将文件夹下面的文件打包成zip
- java将文件打包成ZIP压缩文件的工具类实例
- java将文件打包成ZIP压缩文件的工具类实例
- java将文件打包成ZIP压缩文件的工具类实例
- java将文件打包成ZIP压缩文件的工具类实例
- 将指定文件夹里的文件打包为zip
- php将文件夹打包成zip文件
- php将文件夹打包成zip文件
- php将文件夹打包成zip文件
- java 将指定文件夹递归的进行zip打包压缩
- (Java控制台程序版)递归打包整个父文件夹下的文件和子文件夹成压缩文件(*.ZIP)以及打包时常见的文件乱码和文件名乱码以及丢失文件或文件损坏问题解决办法
- java将文件打包成zip文件
- JAVA实现将文件或是文件夹打包压缩成zip格式
- 不使用开发工具将文件或文件夹打包成jar文件
- C#打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件)
- C#打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件)
- unity打包文件夹成zip格式(包括文件夹和子文件夹下的所有文件)
- Java
- 初学类
- 啤酒和饮料
- LoadRunner录制时无法调用IE浏览器
- h5微信游戏|大番薯h5斗地主牛牛十三水安装下载教程
- java写的将文件或文件夹打包成zip的工具类
- mysql外键约束
- Dijkstra算法-最短路径问题
- Android 禁止截屏功能
- Java的MyBatis框架中Mapper映射配置的使用及原理解析
- 1008. 数组元素循环右移问题 (20)
- -XX:+PrintGCTimeStamps -XX:+PrintGCDetails 日志分析
- zabbix3.4 监控Dell iDrac SNMPV2
- js 拾贝集锦 (不定时更新)