- 浏览: 345947 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (238)
- j2ee (22)
- mysql (14)
- hibernate (2)
- struts (3)
- spring (7)
- php (28)
- cakephp (12)
- pattern (0)
- 数据结构 (0)
- python (17)
- redis (1)
- sql (2)
- ibatis (1)
- jquery (3)
- 测试 (3)
- linux (37)
- solr (3)
- oracle (5)
- jira (5)
- 版本控制 (3)
- xp (1)
- IDE (3)
- apache (4)
- hadoop (2)
- freemarker (2)
- maven (5)
- 项目管理 (2)
- UML (1)
- Django (6)
- 正则 (1)
- Scrapy (1)
- 文档管理 (3)
- 项目集成 (8)
- MQ (3)
- 架构 (1)
- HTML (1)
- IT (1)
- 云 (0)
- 应用服务器 (4)
- win 7 (1)
- thrift (1)
- 学习 (3)
- OpenStack (3)
- sqlserver (1)
- javascript (1)
- zabbix (3)
- IOS (1)
- rabbitmq (1)
- springcloud (2)
最新评论
-
xushenkun4:
至今仍然有这个bug,0.9.1无法传输中文utf8。
thrift使用出现诡异问题 -
feiniao2029:
[i][/i][u][/u]引用
spring 配置init方法 -
wt811004:
非常感谢朋友慷慨指导
dotproject项目管理工具使用 -
hackpro:
这将是一个经典,就像大话西游...
javaeye怀旧 -
raymond2006k:
个人更偏好 Velocity。我觉得还有个对比点,就是编程方式 ...
jsp freemarker velocity 比较
1.基本解压,压缩操作
2.基于Java Zip技术压缩目录或文件
package com.jason.zip; import com.jason.j2ee.encode.ChangeCharset; import org.apache.tools.zip.ZipOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; /** * Created by IntelliJ IDEA. * User: jason * Date: 2010-6-23 * Time: 15:27:21 */ public class CompressToZip { public void zip(String inputFileName) throws Exception { String zipFileName = "d:\\批量打包.zip";// 打包后文件名字 System.out.println(zipFileName); zip(zipFileName, new File(inputFileName)); } private void zip(String zipFileName, File inputFile)throws Exception { ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName)); out.setEncoding(ChangeCharset.UTF_8); zip(out, inputFile, ""); System.out.println("zip done"); out.close(); } private void zip(ZipOutputStream out, File f, String base) throws Exception { if (f.isDirectory()) { File[] fl = f.listFiles(); System.out.println("新增目录元素 " +base+ "/"); out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/")); base = base.length() == 0 ? "" : base + "/"; for (int i = 0; i < fl.length; i++) { zip(out, fl[i], base + fl[i].getName()); } } else { String fileName = ChangeCharset.changeCharset(base, ChangeCharset.UTF_8); System.out.println("新增普通文件元素 " +fileName); out.putNextEntry(new org.apache.tools.zip.ZipEntry(fileName)); FileInputStream in = new FileInputStream(f); int b; while ((b = in.read()) != -1) { out.write(b); } in.close(); } } public static void main(String[] args) { CompressToZip test = new CompressToZip(); try { test.zip("d:\\tmp"); } catch (Exception e) { e.printStackTrace(); } } }
2.基于Java Zip技术压缩目录或文件
package com.jason.zip; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * 基于Java Zip技术压缩目录或文件. * 该压缩技术支持多级目录的压缩,使用递归算法. * 问题是不支持中文,如果想要支持中文,请使用Ant的Zip技术. * * Created by IntelliJ IDEA. * User: jason * Date: 2010-6-23 * Time: 15:22:46 */ public class ZipMultiDirectoryCompress { /** * @param args */ public static void main(String[] args) { //初始化支持多级目录压缩的ZipMultiDirectoryCompress ZipMultiDirectoryCompress zipCompress = new ZipMultiDirectoryCompress(); //压缩目录,可以指向一个文件 String directory = "C:/computer"; //生成的压缩文件 String destFile = "c:/computer.zip"; //默认的相对地址,为根路径 String defaultParentPath = ""; ZipOutputStream zos = null; try { //创建一个Zip输出流 zos = new ZipOutputStream(new FileOutputStream(destFile)); //启动压缩进程 zipCompress.startCompress(zos,defaultParentPath,directory); } catch (FileNotFoundException e){ e.printStackTrace(); } finally{ try { if(zos != null)zos.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * 开始压缩. * * @param zos ZipOutputStream * @param oppositePath 相对路径,开始时相对路径为空 * @param directory 压缩目录,也可能是文件 */ public void startCompress(ZipOutputStream zos, String oppositePath, String directory){ File file = new File(directory); if(file.isDirectory()){ //如果是压缩目录 File[] files = file.listFiles(); for(int i=0;i<files.length;i++){ File aFile = files[i]; if(aFile.isDirectory()){ //如果是目录,修改相对地址 String newOppositePath = oppositePath + aFile.getName() + "/"; //创建目录 compressDirectory(zos, oppositePath, aFile); //进行递归调用 startCompress(zos,newOppositePath,aFile.getPath()); } else { //如果不是目录,则进行压缩 compressFile(zos,oppositePath,aFile); } } } else { //如果是压缩文件,直接调用压缩方法进行压缩 compressFile(zos,oppositePath,file); } } /** * 压缩文件. * * @param zos ZipOutputStream * @param oppositePath 相对于路路径 * @param file 压缩的文件 */ public void compressFile(ZipOutputStream zos, String oppositePath, File file){ //创建一个Zip条目,每个Zip条目都是必须相对于根路径 ZipEntry entry = new ZipEntry(oppositePath + file.getName()); InputStream is = null; try{ //将条目保存到Zip压缩文件当中 zos.putNextEntry(entry); //从文件输入流当中读取数据,并将数据写到输出流当中. is = new FileInputStream(file); int length = 0; int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; while((length=is.read(buffer,0,bufferSize))>=0){ zos.write(buffer, 0, length); } zos.closeEntry(); }catch(IOException ex){ ex.printStackTrace(); } finally { try{ if(is != null)is.close(); }catch(IOException ex){ ex.printStackTrace(); } } } /** * 在压缩文件当中创建一个新的压缩目录,支持空目录. * * @param zos * @param oppositePath * @param file */ public void compressDirectory(ZipOutputStream zos, String oppositePath, File file){ //压缩目录,这是关键,创建一个目录的条目时,需要在目录名后面加多一个"/" ZipEntry entry = new ZipEntry(oppositePath + file.getName() + "/"); try { zos.putNextEntry(entry); zos.closeEntry(); } catch (IOException e) { e.printStackTrace(); } } }
发表评论
-
BigDecimal.setScale 处理java小数点
2013-01-24 13:48 702BigDecimal.setScale()方法用于格式化小数点 ... -
test
2012-08-17 12:39 0testa -
Tomcat内存溢出的三种情况及解决办法分析
2012-08-13 14:44 932Tomcat内存溢出的三种 ... -
java 数据格式化
2012-03-16 10:59 9641. 数字数据格式化 import java.te ... -
java URL encoding and decoding
2012-03-16 10:56 16671. URL编码 java提供了URLEncoder,URLD ... -
java面试题
2012-02-22 18:21 929JAVA面试题集 基础知识: 1.C++或Java ... -
Object类有哪些方法
2012-02-22 18:05 55621. 今天看了一个帖子,说某个公司面试题中问到Object类有 ... -
Java 调用cmd.exe命令
2011-12-29 15:16 1185public class Test { ... -
学习Java的各大网站
2011-12-22 09:03 742java 网址大全 http://www.java1995.c ... -
XML解析之DOM4J
2011-12-26 11:14 9361. 简介 java的xml解析分为: Dom ... -
jvm classloader知识
2011-12-23 10:26 8691. jvm classloader 分 bootstra ... -
下载servlet
2011-12-14 17:42 881public class DownloadServlet ... -
日期工具类
2011-12-14 17:40 1333日期工具类 public class ... -
怎样方便的读取map的key和value
2011-12-14 09:51 12761.方法一 public void getKV(){ ... -
java环境
2011-12-14 09:33 732java环境 1.Windows eg: 在环境变 ... -
当前时间毫秒转换为日期、字符串
2011-12-08 14:27 2597当前时间毫秒转换为日期、字符串 /** ... -
Comparable接口与Comparator接口的对比
2011-12-08 13:33 8551. Comparable接口与Comparator接口的对比 ... -
java集合结构图
2011-12-08 12:42 490java集合结构图 -
javaeye怀旧
2011-04-02 10:25 1043一.图片1 二.图片2 -
用 for/in 在 Java 5.0 中增强循环
2010-09-20 10:23 822for/in 循环通常叫作 增强的 for 或者 f ...
相关推荐
JAVA 文件常用流操作 包括文件的创建,重命名,删除等等。字节流,字符流,缓存流,数据流,打印流,内存流等等
Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问...
java 操作Zip文件(压缩、解压、加密) zip4j-1.3.2.jar ant-1.10.6.jar
Java实现Zip压缩文件操作的工具类 文章介绍:https://blog.csdn.net/rongbo91/article/details/117747042 (可作为Jar依赖包直接使用) 1、项目使用前,请进入rdc-bom目录下,执行mvn clean install命令 2、可...
Java Zip算法压缩多个文件的例子,具体的实现原理是:先打开文件并读取,然后利用ZipEntry实例化待压缩的条目列表,将ZIP条目列表写入输出流,从源文件得到文件输入流,写入缓冲数据等。相关代码: ...
67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作...
29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29.java字符串+操作.zip29...
包含了使用的jar包,以及一个Java类,实现了使用Java对多目录多层级的文件进行打包,以及对ZIP包进行解压缩的操作。
1. 统计并输出大写字母、小写字母、数字和其它字符的数量。 2. 接收命令行输入的一个字符,在字符串s中查找该字符出现的次数以及位置。 3.... 1.... 2. 定义学生类,访问类的实例成员和类成员 、实例方法和类方法
NULL 博文链接:https://ait.iteye.com/blog/919676
java控制指定路径下的文件夹压缩成zip格式。 java将zip压缩包解压成为文件夹。直接使用io流进行操作,不需借助其他jar包
Java调用Zip类批量压缩多个文件,此前有一个是压缩单个文件,也可参考,相关代码中可找到此源码。 public class ZipDemo extends JFrame{ JFileChooser fileChooser; //文件选择器 JList fileList; //待...
java,Blob字段操作,将图片或者文件保存到数据库中.zip
java语言操作解压缩文件。 /** * 数据压缩 * * @param data * @return * @throws Exception */ public static byte[] compress(byte[] data) throws Exception { ByteArrayInputStream bais = new ...
winszipaes是Java语言下的ZIP文件操作接口,支持密码,但源代码不支持中文,该jar包对源码作了一点修改,使其支持中文,修改信息可以参照我的博客http://blog.csdn.net/zhangyihui1986/article/details/7724229或者...
Java zip压缩包查看程序源码.rar java 一个消息发布网站.rar Java 数字签名、数字证书生成源码.rar Java 版的酒店系统,貌似完整.rar Java 电梯模拟程序 v2.0.rar Java 组播组中发送和接受数据实例 Java 飞机订票....
java json.zip用于java后台操作json
Java程序操作docker示例Demo.zip
Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问...