资源简介
使用 Java 语言实现并封装的创建 ZIP 格式的压缩文件并解压到指定目录和解压 ZIP 文件到指定目录的工具类。
代码片段和文件信息
import com.sun.istack.internal.NotNull;
import java.io.*;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
/**
* This is util class to compress file to a zip file and decompress zip file to normal file
* Author: 指点
*/
public class ZipUtils {
/**
* compress file or dictionary what named inputName by zip form and save it to the load of outputName as a zip file
* if param inputName is null or the file of it represent is not exists
* this method will throws new IllegalArgumentException;
* 以 zip 格式压缩路径为 inputName 的文件/文件夹,并且将其压缩后的 zip 文件保存在路径为 outputName 的文件,
* 如果 inputName 所代表的文件/文件夹不存在,将会抛出一个 IllegalArgumentException
* @param inputName the file of you want to compress
* @param outputName the output file path which you want to save the zip file
*/
public static void compressFile(@NotNull String inputName @NotNull String outputName) throws IOException {
if (inputName == null || outputName == null) {
throw new IllegalArgumentException(“input name and output name can‘t be null“);
}
File inputFile = new File(inputName);
if (!inputFile.exists()) {
throw new IllegalArgumentException(“The input file does not exists!“);
}
// 创建一个新的 ZipOutputStream 对象
ZipOutputStream output = new ZipOutputStream(new FileOutputStream(outputName));
System.out.println(“正在压缩中...“);
long startTime = System.currentTimeMillis();
// 设置压缩文件注释
output.setComment(“This is my zip file“);
// 开始压缩文件
zipFile(output inputFile ““);
long endTime = System.currentTimeMillis();
System.out.println(“压缩完成“);
System.out.println(“压缩用时:“ + String.valueOf(((double) endTime-startTime)/1000) + “秒“);
// 结束压缩文件
output.close();
}
/**
* decompress the zip file to specific path
* 将 zip 文件解压缩到 outputName 所代表的文件夹中,确保 outputName 为一个已存在的文件夹
* @param inputName the zip file path which you want to decompress
* @param outputName the folder path what you want to save the result files
* please make sure the folder of outputName represent is exists
*/
public static void decompressFile(@NotNull String inputName @NotNull String outputName) {
if (inputName == null || outputName == null) {
throw new IllegalArgumentException(“input path and output path can‘t be null“);
}
File outputDir = new File(outputName);
// 如果输出目录不存在,那么新建一个文件夹
if (!outputDir.exists()) {
outputDir.mkdirs();
}
try {
System.out.println(“正在解压中...“);
long startTime = System.currentTimeMillis();
// 创建 ZipFile 对象来解压 ZIP 文件
ZipFile zipFile = new ZipFile(inputName);
// 解压文件
unzipFile(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-12-05 00:30 ZipFileTest\
目录 0 2017-12-05 00:29 ZipFileTest\.idea\
目录 0 2017-12-04 19:57 ZipFileTest\.idea\inspectionProfiles\
目录 0 2017-12-04 19:57 ZipFileTest\.idea\libraries\
文件 210 2017-12-04 19:57 ZipFileTest\.idea\libraries\testFile.xm
文件 234 2017-12-04 20:18 ZipFileTest\.idea\misc.xm
文件 262 2017-12-04 19:57 ZipFileTest\.idea\modules.xm
文件 21968 2017-12-05 00:29 ZipFileTest\.idea\workspace.xm
目录 0 2017-11-28 22:27 ZipFileTest\out\
目录 0 2017-11-28 22:27 ZipFileTest\out\production\
目录 0 2017-12-05 00:21 ZipFileTest\out\production\ZipFileTest\
文件 5053 2017-12-05 00:21 ZipFileTest\out\production\ZipFileTest\ZipUtils.class
目录 0 2017-12-05 00:23 ZipFileTest\src\
文件 8050 2017-12-05 00:23 ZipFileTest\src\ZipUtils.java
目录 0 2017-12-04 21:32 ZipFileTest\testFolder\
文件 9 2017-11-28 22:25 ZipFileTest\testFolder\文本1.txt
目录 0 2017-12-04 21:32 ZipFileTest\testFolder\测试文件夹2\
文件 286918 2017-09-09 21:14 ZipFileTest\testFolder\测试文件夹2\魁拔之书.txt
文件 423 2017-12-04 19:57 ZipFileTest\ZipFileTest.iml
- 上一篇:JAVA网络基础通信
- 下一篇:CtoJavaConverter.rar
相关资源
- Android代码-多功能拨号盘源码.zip
- 学生请假管理系统.zip
- app inventor开发: 安安历险记.zip
- mybatis_plus-17版本.zip
- 好用的支持android 6.0以上的libserial_p
- jdk1.8.0_161 (64位)官方正式解压版
- NCC-OpenAPI文档.zip
- 黑马28期Android全套视频无加密无水印
- JAVA核心面试知识整理-最全.zip
- java国密算法SM4加密.zip
- pdf-chinese.zip
- zip4j_1.3.2.zip
- zip4jDemo+jar包
- fmath-mathml-java.zip
- StudentManagerWeb.zip
- Android代码-查询软件源代码身份证号号
- Android游戏源码基于蓝牙的坦克大战和
- AndroidUSBCamera.zip
- 网上银行系统.zip
- 吉林大学数据库系统应用开发源代码
- 基于JavaWeb的美食图片分享网站.zip
- ASP.NET mvc ef 高端仓储管理系统源码.
- SQL SERVER +java界面的库存管理系统.zi
- [数据结构Java版第4版][叶核亚][习题解
- 维语词典源码.zip
- 【Java】人事管理系统.zip212707
- 解析身份证省市代码.zip
- teacher.zip
- 中控智慧考勤机-SDK-Java二次开发demo
- Java实现坦克大战小游戏.zip
评论
共有 条评论