java 解压与压缩代码_Java实现多文件压缩和解压缩代码详解
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);
}
} 转自:http://blog.csdn.net/zdp072/article/details/44177925
java 解压与压缩代码_Java实现多文件压缩和解压缩代码详解相关推荐
- java游戏代码_Java与Kotlin系列文章之性能问题详解
作者丨Jakub Anioła 译者丨姜雨生 策划丨田晓旭 随着对 Kotlin 越来越深入的了解,我发现市面上关于 Kotlin 方面,比较深入的资料几乎是 0,所以我决定,将 Kotlin 各个方 ...
- java中乱码产生的原因_java出现乱码的原因与解决方法详解
java在字符串中统一用Unicode表示.(推荐:java视频教程) 对于任意一个字符串:String string = "测试字符串"; 如果源文件是GBK编码,操作系统默认环 ...
- java 判断请求为 ajax请求_Java后台判断ajax请求及处理过程详解
一.问题描述: 当访问一个需要登录的页面时,会有过滤器或者拦截器进行过滤拦截,如果用户没有登录,则跳转到登录页面. 当用户已经登录进入系统后,然后长时间没操作,等到session过期后,再点击一个aj ...
- java中double的使用方法_java中double型数据如何四舍五入?详解
下面以保存两位有效数字为例. 1.首先我们想到用先乘以100取整后再除以100.0这种做法: System.out.println(Math.round(4.015*100)/100.0); 执行结果 ...
- java重载与重写的例子_java 重载(overload)与重写(override)详解及实例
很多同学对于overload和override傻傻分不清楚,建议不要死记硬背概念性的知识,要理解着去记忆. 先给出我的定义: overload(重载):在同一类或者有着继承关系的类中,一组名称相同,参 ...
- java解析日志数据_Java实时监控日志文件并输出的方法详解
Java实时监控日志文件并输出的方法详解 想在前台显示数据同步过程中产生的日志文件,在网上找到解决方案,做了代码测试好用.这里做个记录 java.io.RandomAccessFile可以解决同时向文 ...
- java spring mvc 上传_Java Spring MVC 上传下载文件配置及controller方法详解
下载: 1.在spring-mvc中配置(用于100M以下的文件下载) 下载文件代码 @RequestMapping("/file/{name.rp}") public Respo ...
- python zipfile压缩的文件用shell命令解压_Python学习第177课——bzip2、zip方式压缩文件和解压文件...
之前我们学习了tar打包.解包.gzip压缩,现在我们学习gzip解压. ●gzip解压 现在我们把上节生成的压缩文件linux_compressed.gz进行解压,使用命令: tar -xzf li ...
- linux解压多个part rar,【linux】安装rar,并解压被压缩成多个rar的文件
rar 官网:http://www.rarsoft.com/download.htm 选择 RAR for linux (注意你的系统是32位还是64位) 1 安装命令: $ cd /roo ...
- 关于将Java编译过的.class文件打成jar可执行文件/JAR详解
常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了:而另一种是使用 JET 来进行 ...
最新文章
- IE浏览器上传文件时本地路径变成”C:\fakepath\”的问题
- python运行时修改代码会怎样_python运行时修改代码的方法——monkey patch
- Day 1 用户交互
- [C++][数据结构]栈(stack)的实现
- VMware-server遇到问题的解决
- c#3.0系列:Object Initializer 和 Collection Initializer
- 特定场景下取代if-else和switch的方式
- Schema initialization FAILED! Metastore state would be inconsistent !!
- 微信小程序正确的异步request请求,根据经纬度获取地理位置信息
- 禁止摄像机跟随`Actor`旋转 Learn Unreal Engine (with C++)
- python 字典处理_Python3 字典 in 操作符
- java 操作mdb文件_Java操作MDB文件
- 软件测试文档类型有哪些?
- bp神经网络误差反向传播,bp神经网络结果不一样
- html 科赫雪花,CSS3 科赫雪花分形动画
- 将视频截取成图片的C++代码
- php根据手机号码获取归属地,PHP通过API获取手机号码归属地
- SSD 输入图片尺寸、比例
- Automated Installations of Multiple RHEL/CentOS 7 Distributions using PXE Server and Kickstart Files
- HC-SR501 人体红外感应模块
热门文章
- iOS架构设计-URL缓存(上)
- springboot 头像上传 文件流保存 文件流返回浏览器查看 区分操作系统 windows 7 or linux...
- flutter开发中常用的dart插件
- Message、Handler、Message Queue、Looper之间的关系
- 第十周项目5:贪心的富翁
- 04号团队-团队任务5:项目总结会
- 路印协议受邀参加澳洲新南威尔士政府孵化器Haymarket HQ分享论坛
- 根据PromiseA+规范实现Promise
- Netty 粘包 拆包 编码 解码 序列化 介绍
- 怎么让wordpress用sqlite3 搭建轻量级博客系统