package com.biao.test;
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) {
// TODO Auto-generated catch block
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) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**功能:
* @param args
*/
public static void main(String[] args) {
//2个源文件
File f1=new File("D:\\workspace\\flexTest\\src\\com\\biao\\test\\abc.txt");
File f2=new File("D:\\workspace\\flexTest\\src\\com\\biao\\test\\test.zip");
File[] srcfile={f1,f2};
//压缩后的文件
File zipfile=new File("D:\\workspace\\flexTest\\src\\com\\biao\\test\\biao.zip");
//TestZIP.zipFiles(srcfile, zipfile);
//需要解压缩的文件
File file=new File("D:\\workspace\\flexTest\\src\\com\\biao\\test\\biao.zip");
//解压后的目标目录
String dir="D:\\workspace\\flexTest\\src\\com\\biao\\test\\";
TestZIP.unZipFiles(file, dir);
}
}

Java实现多文件压缩打包的方法的更多相关文章

  1. Java /C# 实现文件压缩

    纯粹为了记录. 参考了 https://www.cnblogs.com/zeng1994/p/7862288.html import java.util.List; import java.util. ...

  2. Linux的文件的打包(tar方法)

    Linux的文件的打包(tar方法) tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一 ...

  3. java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)

     java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...

  4. java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去

    #java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回: ...

  5. Java中移动文件或目录的方法盘点

    本文不再更新,可能存在内容过时的情况,实时更新请移步原文地址:Java中移动文件或目录的方法盘点: import org.apache.commons.io.FileUtils; import jav ...

  6. Java 多个文件压缩下载

    有时候会有多个附件一起下载的需求,这个时候最好就是打包下载了 首先下面这段代码是正常的单个下载 public void Download(@RequestParam("file_path&q ...

  7. java实现将文件压缩成zip格式

    以下是将文件压缩成zip格式的工具类(复制后可以直接使用): zip4j.jar包下载地址:http://www.lingala.net/zip4j/download.php package util ...

  8. Linux文件压缩/打包/解压

    在Linux日常维护中,经常需要备份同步一些比较重要的文件,而在传输过程中如果文件比较大往往会非常慢,而且还会非常占用空间,这时候就需要我们使用压缩工具对大文件进行压缩打包,下面我们来介绍一下常用的压 ...

  9. Java读取Excel文件的几种方法

    Java读取 Excel 文件的常用开源免费方法有以下几种: 1. JDBC-ODBC Excel Driver 2. jxl.jar 3. jcom.jar 4. poi.jar 简单介绍: 百度文 ...

随机推荐

  1. 最新GitHub账号注册(详细图解)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一.简介 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub. ...

  2. DE1-SOC学习

    https://people.ece.cornell.edu/land/courses/ece5760/DE1_SOC/HPS_peripherials/index.html https://peop ...

  3. IDEACould not autowire. No beans of 'xxxMapper' type found.

    作为一名刚开始使用idea的新手,最近在使用maven+springMVC框架时遇到了这样一个问题:Could not autowire. No beans of 'xxxMapper' type f ...

  4. POJ 3134 - Power Calculus (IDDFS)

    题意:求仅仅用乘法和除法最快多少步能够求到x^n 思路:迭代加深搜索 //Accepted 164K 1094MS C++ 840B include<cstdio> #include< ...

  5. u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统

    http://www.linuxidc.com/Linux/2012-09/70510.htm  来源:Linux社区  作者:赵春江 uboot最主要的功能就是能够引导内核启动.本文就介绍如何实现该 ...

  6. 任哲<<μC/OS>>

    从第二章开始啦: 程序控制块(TCB)  重要概念  相当于对应程序块的学生证,学号,,, 上面的图是一个简单的程序控制块,还会有复杂的程序控制块,也许是嵌套的两级的: 链表就相当于老师手中的花名册, ...

  7. HDoj-1163- Digital Roots

    Problem Description The digital root of a positive integer is found by summing the digits of the int ...

  8. 阿里云服务器安全设置 分类: B3_LINUX 2014-07-24 11:10 5197人阅读 评论(1) 收藏

    1.开启云盾所有服务 2.通过防火墙策略限制对外扫描行为 请您根据您的服务器操作系统,下载对应的脚本运行,运行后您的防火墙策略会封禁对外发包的行为,确保您的主机不会再出现恶意发包的情况,为您进行后续数 ...

  9. 将String转化为Long,并将Long转化为Date 分类: B1_JAVA 2014-06-30 16:23 1249人阅读 评论(0) 收藏

    package org.ljh.test.javaee; import java.text.SimpleDateFormat; import java.util.Date; public class ...

  10. C运行时库(C Run-time Library)详解(提供的另一个最重要的功能是为应用程序添加启动函数。Visual C++对控制台程序默认使用单线程的静态链接库,而MFC中的CFile类已暗藏了多线程)

    一.什么是C运行时库 1)C运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数. 2)C 语言是所谓的“ ...