Java实现多文件压缩和解压缩代码(未测试)
2016-07-22 10:09
561 查看
Java实现多文件压缩和解压缩代码
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; public class TestZIP { /** * 功能:压缩多个文件成一个zip文件 * @param srcfile:源文件列表 * @param zipfile:压缩后的文件 */ public static void zipFiles(File[] srcfile, File zipfile) { byte[] buf = new byte[1024]; try { //ZipOutputStream类:完成文件或文件夹的压缩 ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile)); for (int i = 0; i < srcfile.length; i++) { FileInputStream in = new FileInputStream(srcfile[i]); out.putNextEntry(new ZipEntry(srcfile[i].getName())); int len; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } out.closeEntry(); in.close(); } out.close(); System.out.println("压缩完成."); } catch (Exception e) { e.printStackTrace(); } } /** * 功能:解压缩 * @param zipfile:需要解压缩的文件 * @param descDir:解压后的目标目录 */ public static void unZipFiles(File zipfile, String descDir) { try { ZipFile zf = new ZipFile(zipfile); for (Enumeration entries = zf.entries(); entries.hasMoreElements();) { ZipEntry entry = (ZipEntry) entries.nextElement(); String zipEntryName = entry.getName(); InputStream in = zf.getInputStream(entry); OutputStream out = new FileOutputStream(descDir + zipEntryName); byte[] buf1 = new byte[1024]; int len; while ((len = in.read(buf1)) > 0) { out.write(buf1, 0, len); } in.close(); out.close(); System.out.println("解压缩完成."); } } catch (Exception e) { e.printStackTrace(); } } /**功能: * @param args */ public static void main(String[] args) { //2个源文件 File f1 = new File("D:\\test\\1.csv"); File f2 = new File("D:\\test\\2.xlsx"); File[] srcfile = { f1, f2 }; //压缩后的文件 File zipfile = new File("D:\\test\\3.zip"); TestZIP.zipFiles(srcfile, zipfile); //需要解压缩的文件 File file = new File("D:\\test\\3.zip"); //解压后的目标目录 String dir = "D:\\test\\1\\"; TestZIP.unZipFiles(file, dir); } }
相关文章推荐
- Java实现网页截屏(未测试)
- java发送邮件(未测试)
- spring+xfire开发webservice
- spring中的设计模式
- Spring MVC静态资源处理
- Java实现对cookie的操作(增删改查)(未测试)
- thingking in java2.11练习(4)(5)
- Java 内置工具
- java搜索引擎爬虫,抓取url示例(未测试)
- Java中Date日期格式的各种转换
- java中常用的时间处理类TimeUtil (未测试)
- java lisi乱序、排序(未测试)
- Java自定义异常
- java 时间工具类(未测试)
- Java 获取指定字符串出现的次数
- JAVA Iterator 转成 List
- org.springframework.web.context.ContextLoaderListener
- java 字符串系列化及反系列化 (未测试)
- spring工程中得到注入bean的集中方式
- 搭建spring+mybatis+struts2环境的配置文件