- 浏览: 231873 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
xmwjfid:
写的不错,就是有个疑问groupSize 这个用来干什么?
jQuery Ajax分页(pagination.js)分页插件 (转载) -
GRACEACT:
Thanks.对我很有帮助。
使用Java组件itext 生成pdf的介绍 -
xianzi_2008:
jQuery Ajax分页(pagination.js)分页插件 (转载) -
xiaotao.2010:
Demo a=new Demo()
{ ...
匿名类 -
system1029hq:
jQuery Ajax分页(pagination.js)分页插件 (转载)
程序实现了ZIP压缩。共分为2部分 : 压缩(compression)与解压(decompression)
大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和解压。
需在代码中自定义源输入路径和目标输出路径。
package com.uaes.util; import java.io.*; import java.util.zip.*; /** * @description 实现了ZIP【压缩】【解压】功能:大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和解压。 * @author King_wangyao * @date 2011-11-28 * @version 1.0.0 * */ public class ZIPUtil { private static int k = 1; // 定义递归次数变量 /** * 指定ZIP压缩(compression) * * @param zipFileName 输入完整的压缩包路径名称 * @param inputFile 输入将要压缩的目录 */ private static void compression(String zipFileName, File inputFile) throws Exception { long startTime = System.currentTimeMillis(); System.out.println("压缩中..."); ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName)); BufferedOutputStream bo = new BufferedOutputStream(out); zip(out, inputFile, "/" + inputFile.getName(), bo); bo.close(); out.close(); // 输出流关闭 System.out.println("压缩完成"); long endTime = System.currentTimeMillis(); System.out.println("压缩耗费时间: " + (endTime - startTime) + " ms"); } private static void zip(ZipOutputStream out, File f, String base, BufferedOutputStream bo) throws Exception { // 方法重载 if (f.isDirectory()) { File[] fl = f.listFiles(); for (int i = 0; i < fl.length; i++) { zip(out, fl[i], base + "/" + fl[i].getName(), bo); // 递归遍历子文件夹 } System.out.println("第" + k + "次递归"); k++; } else { out.putNextEntry(new ZipEntry(base)); // 创建zip压缩进入点base System.out.println(base); FileInputStream in = new FileInputStream(f); BufferedInputStream bi = new BufferedInputStream(in); int b; while ((b = bi.read()) != -1) { bo.write(b); // 将字节流写入当前zip目录 } bi.close(); in.close(); // 输入流关闭 } } /** * 指定ZIP解压(decompression) * * @param target 输入源zip路径 * @param parent 输出解压目录) */ public static void decompression(String target, String parent) { long startTime = System.currentTimeMillis(); System.out.println("压缩中..."); try { ZipInputStream Zin = new ZipInputStream(new FileInputStream(target));// 输入源zip路径 BufferedInputStream Bin = new BufferedInputStream(Zin); File Fout = null; ZipEntry entry; try { while ((entry = Zin.getNextEntry()) != null && !entry.isDirectory()) { Fout = new File(parent, entry.getName()); if (!Fout.exists()) { (new File(Fout.getParent())).mkdirs(); } FileOutputStream out = new FileOutputStream(Fout); BufferedOutputStream Bout = new BufferedOutputStream(out); int b; while ((b = Bin.read()) != -1) { Bout.write(b); } Bout.close(); out.close(); System.out.println(Fout + "解压成功"); } Bin.close(); Zin.close(); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } long endTime = System.currentTimeMillis(); System.out.println("解压耗费时间: " + (endTime - startTime) + " ms"); } /** * 测试... * @param args */ public static void main(String[] args) { // 自定义的zip输出路径 String target = "C:\\TEMP\\Compression.zip"; // 自定义的源输入路径,即要压缩的文件或文件夹 String path = "C:\\TEMP\\student.png"; // 自定义的解压目录 String decompressionPath = "C:\\TEMP\\decompression"; try { // 压缩测试 compression(target, new File(path)); // 解压测试 decompression(target, decompressionPath); } catch (Exception e) { e.printStackTrace(); } } }
程序控制台输入结果,如下图:
压缩、解压结果,如下图:
发表评论
-
JavaScript与Java的区别
2012-09-29 23:50 10201.基于对象和面向对象 Java是一种面向对象的语言 ... -
应该被记住的 8 位Java人物
2012-07-04 17:53 1376这里列举了 8 个 Java 人物,他们创建了对 Ja ... -
Struts基本原理
2012-07-04 17:48 1507上图来源于Struts2官方站点,是Struts 2 的整 ... -
Spring事务配置的五种方式
2012-07-04 17:45 1405Spring配置文件中关于事务配置总是由三个组成部分,分别是D ... -
MyEclipse中Ctrl+Shift+F格式化代码时不换行
2012-06-12 21:04 2644Eclipse 格式化代码时不换行 每次用Eclipse自带 ... -
MyEclipse 解决内存溢出
2012-06-12 20:57 22481、修改eclipse.ini在Myeclipse安装目录下G ... -
J2EE体系结构图或三层结构图
2012-05-05 23:55 4808J2EE体系结构图或三层结构图 J2EE体系结构图: ... -
struts2<s:iterator>遍历map小结
2012-05-05 23:34 25591.MapAction.java package com.u ... -
java 调用.net DLL的方法
2012-04-30 16:18 1402背景: 近日一个ja ... -
Windows 任务管理器 PF使用率 总数 核心内存 物理内存
2012-04-28 13:14 14871、【CPU 使用】 CPU的使用百分比,柱状图表示实时的 ... -
框架StringUtil
2012-04-25 21:47 1298package com.common.string; i ... -
在windowsXP中如何卸载Oracle10g
2012-03-19 21:45 1241软件环境: 1、Windows XP ... -
MD5
2012-03-15 22:22 938package com.kingsoft.main; / ... -
cookie与session的区别和联系
2012-02-01 11:58 1121最佳答案具体来说cookie ... -
《网站开发人员应该知道的61件事》[解读]
2011-12-03 21:36 1622看了阮一峰翻译的《 ... -
JAVA字符串的方法
2011-11-28 21:04 10191、length() 字符串的长度 例:char chars ... -
JAVA中线程同步方法
2011-11-28 21:01 19231 wait方法: 该方法属于Object的方 ... -
JAVA几个常见错误简析
2011-11-28 20:58 964JAVA几个常见错误简析: 1,空指针错误 java ... -
Eclipse中使用debug技术
2011-11-28 20:52 1260一、怎样启动debug模式 1、在程序中设置断点 ... -
从字符串中检索输出数字
2011-10-31 23:59 943Stirng name="asdfq5asdf23& ...
相关推荐
C语言实现Zip压缩解压
NULL 博文链接:https://wintys.iteye.com/blog/426090
C++利用Zlib库实现zip文件压缩及解压 支持递归压缩.可配合自动更新功能实现zip压缩包进得软件更新
内容概要:qt5 调用 7zip库的压缩解压功能,且通过信号发出压缩解压的进度,主程序在bin目录中。 适用人群:qt5开发人员 适用场景:用的编译环境是qt5.12.2+vs2017,系统是windows10. lib目录中OleAut32.Lib和User32....
本例使用C#实现了,对文件和文件夹的ZIP压缩,和对Zip文件的解压。
AS3.0 ZIP压缩解压源代码 AS3.0 ZIP压缩解压源代码
zip 文件压缩 解压源码,c++版。已测试,100%可用! // XUnzip.cpp Version 1.3
c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压c#zip压缩与解压
手机端 zip 压缩解压器 手机端zip压缩解压器手机端zip压缩解压器手机端zip压缩解压器手机端zip压缩解压器手机端zip压缩解压器手机端zip压缩解压器手机端zip压缩解压器
使用XE4自带单元System.Zip。来压缩解压,有XE4写的Exe,XE4写的Dll可供Delphi7调用。里面都有源码。
VB6.0调用 DLL版ZIP压缩文件夹目录和解压ZIP文件,网上很多源码不好用,所以就自己做了一个。原始代码是VC++的用VS2019编译了一个,DLL封装了下。调用很简单 '调用方法如下: 'CreateZipFileA "C:\123", "C:\123.zip...
使用VC实现zip的压缩、解压功能,支持文件、文件夹、密码。 VC use zip unzip and document compression and decompression code, support file, directory.
这里只提供4个文件,zip.h,zip.cpp,unzip.h,unzip.cpp。 在VC6.0中,LONGLONG的报错,并修复了HZIP解压带有密码的压缩包,少了12个字节的错误。具体例子在头文件里有。 可以参考文章:...
zip压缩解压的源代码zip压缩解压的源代码
QT5 zip压缩和解压,支持文件夹的压缩和解压源代码,接口简洁,使用简单
C#实现zip压缩,解压zip文件源代码,附加有注释,代码清晰易懂!
NULL 博文链接:https://zhenyong.iteye.com/blog/1576148
VC实现解压 压缩zip,简单的实例,简单易懂的实例。
java zip 压缩解压例子
自己封装的文件ZIP压缩和解压接口,调用简单方便