Atitit. 拉开拉链zip文件 的实现最佳实践 java c# .net php

1. Jdk zip 跟apache ant zip 1

2. Apache Ant包进行ZIP文件压缩,upzip 大概流程..
1

3. 读文件名ok,可是cant读取到input说NPE..
2

4. Ant1.8.2.jar 2

5. #---具体code 2

6. 參考 4

1.  Jdk zip 跟apache ant zip

以下实现的功能是zip文件里的图像文件解压到当前文件夹下。用jdk自带的处理zip文件的代码处理的。可是不能处理中文名称的文件。要不然就会出错。

以下是用的apache的zip文件处理包进行处理的,能够处理中文名称的文件,功能跟上面的一样。

使用apache ant version1.7的tools.zip来解压zip文件,解决中文问题

1.7 blow的好像还是不支持中文..

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2. Apache Ant包进行ZIP文件压缩,upzip 大概流程..

很多年前就遇到过这样的业务,对ZIP标准压缩文件解压。

之前写的操作类如今找不到了,近期项目中又要处理这样的业务,所以又一次写了一个。

Java提供 了处理ZIP包的API。可是对中文支持不是非常好。所以我直接用Apache Ant里的ZIP操作API来进行处理。ANT的API攻克了中文支持问题。并且用起来也非常方便。

下面是操作类。

下面的类仅仅是用到Apache的一小部分功能。详细很多其它的API,请參考文档。在此不多说明了。

* 在项目中导入Apache的ant.jar包到Lib中

3. 读文件名ok,可是cant读取到input说NPE..

Cause:::encode问题.. 默认好像是utf8..but 实际是gbk...

org.apache.tools.zip.ZipFile zipFile =new ZipFile(zipFileName, "gbk");

二、在unZipFiles方法中直接使用ZipFile zip = new ZipFile(zipFile); 解压缩时发现中文仍然乱码,改成ZipFile zip = new ZipFile(zipFile,“GBK”); 后中文正常了。可能和项目详细配置与执行环境有关吧。

4. Ant1.8.2.jar

5. #---具体code

/**

* 解压静态方法

* @param zipFileName

* @param outputDirectory

* @throws Exception

*/

public static void extract(String zipFileName,String outputDirectory,String encode) throws Exception{

try {

// = "utf-8";

org.apache.tools.zip.ZipFile zipFile =new ZipFile(zipFileName, encode);

//new org.apache.tools.zip.ZipFile(zipFileName);

java.util.Enumeration e = zipFile.getEntries();

org.apache.tools.zip.ZipEntry zipEntry = null;

while (e.hasMoreElements()){

zipEntry = (ZipEntry)e.nextElement();

System.out.println("unziping "+zipEntry.getName());

try {

upzip(outputDirectory, zipFile, zipEntry);

} catch (zipEntryIsNullEx e2) {

System.out.println(e2.getMessage());

System.out.println("------------");

}

}

}

catch (Exception ex){

System.out.println("解压文件异常"+ex.getMessage());

ex.printStackTrace();

}

}

private static void upzip(String outputDirectory, org.apache.tools.zip.ZipFile zipFile, org.apache.tools.zip.ZipEntry zipEntry) throws  IOException, ZipException, FileNotFoundException, zipEntryIsNullEx {

if (zipEntry.isDirectory()){

String name=zipEntry.getName();

);// for del fesyegeor

mkDirs(outputDirectory+File.separator+name);

//System.out.println("创建文件夹:"+outputDirectory+File.separator+name);

}else{  //file entry o9o

String name=zipEntry.getName();

,name.lastIndexOf("/"));

mkDirs(outputDirectory+File.separator+dir);

//System.out.println("创建文件:"+outputDirectory+File.separator+name);

File f=new File(outputDirectory+File.separator+zipEntry.getName());

f.createNewFile();

InputStream in = zipFile.getInputStream(zipEntry);

if(in==null)

throw new zipEntryIsNullEx("zipEntryIsNullEx:"+name);

FileOutputStream out=new FileOutputStream(f);

int c;

];

){

,c);

}

out.close();

in.close();

}

}

6. 參考

Apache Ant包进行ZIP文件压缩 - 抹去浮华,沉淀深度 - ITeye技术站点.htm

基于apache zip包的压缩和解压缩程序_Crusoe_新浪博客

17194754" target="_blank">

版权声明:本文博客原创文章。博客,未经同意,不得转载。

Atitit. 拉开拉链zip文件 最佳实践实施 java c# .net php的更多相关文章

  1. atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php

    atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服 ...

  2. Atitit.log日志技术的最佳实践attilax总结

    Atitit.log日志技术的最佳实践attilax总结 1. 日志的意义与作用1 1.1. 日志系统是一种不可或缺的单元测试,跟踪调试工具1 2. 俩种实现[1]日志系统作为一种服务进程存在 [2] ...

  3. atitit. 统计功能框架的最佳实践(1)---- on hibernate criteria

    atitit. 统计功能框架的最佳实践(1)---- on hibernate criteria 1. 关键字 1 2. 统计功能框架普通有有些条件选项...一个日期选项..一个日期类型(日,周,月份 ...

  4. atitit.泛型编程总结最佳实践 vO99 java c++ c#.net php

    atitit.泛型编程总结最佳实践 vO99 java c++ c#.net php \ 1. 泛型历史 1 由来 1 2. 泛型的机制编辑 1 机制 1 编译机制 2 3. 泛型方法定义1::前定义 ...

  5. atitit.spring3 mvc url配置最佳实践

    atitit.spring3 mvc url配置最佳实践 1. Url-pattern  bp 1 2. 通用星号url pattern的问题 1 3. Other code 1 4. 参考 2 1. ...

  6. Atitit。团队建设--管理最佳实践--如何留住关键人才,防止人才外流 ??

    Atitit.团队建设--管理最佳实践--怎样留住核心人才,防止人才流失 ?? 1. 1.人才流失后果 1 1. 1.员工的离职带走商业技术秘密和客户等资源 1 2. 2.影响在职员工的情绪.极大挫伤 ...

  7. Atitit。团队建设--管理最佳实践--如何留住核心人才,防止人才流失 ??

    Atitit.团队建设--管理最佳实践--如何留住核心人才,防止人才流失 ?? 1. 1.人才流失后果 1 1. 1.员工的离职带走商业技术秘密和客户等资源 1 2. 2.影响在职员工的情绪,极大挫伤 ...

  8. Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法

    Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法 于是我们可以把上面的语法改写成如下形式:1 合并前缀1 语法分析有自上而下和自下而上两种分析 ...

  9. Atitit. 异常的使用总结最佳实践java .net php Vo8f

    Atitit.java 异常的使用总结最佳实践 Vo8f 1. 为什么使用异常 1 2. 用throw抛出一个异常到catch子句中与通过函数调用传递一个参数两者基本相同. 2 3. S E H的主要 ...

随机推荐

  1. SE 2014年4月30日

    如图配置: SW1 SW2 SW3 SW4组成一环型网络 Sw2 和Sw4个存在两业务vlan(vlan 10 和vlan 20) 1.Smart Link 组1 的引用实例1(绑定VLAN 10 ) ...

  2. Android圆弧形ListView的实现

    本文带大家来实现ListView的圆弧形的分布排列,原理非常easy,就是依据ListView的每个Item的高度来对每个item进行偏移. 首先自己定义一个LinearLayout,这是ListVi ...

  3. 使用Google Roads API抓取道路信息(java实现)

    Google Roads API提供了强大的道路获取接口,用户仅仅需调用对应的API就能够获取对应区域的道路坐标以及道路的限速信息. 详细的调用方法例如以下: https://roads.google ...

  4. 《Nginx文件类型错误解析漏洞--攻击演练》 (转)

    今天看书看到其中提到的一个漏洞,那就是Nginx+PHP的服务器中,如果PHP的配置里 cgi.fix_pathinfo=1 那么就会产生一个漏洞.这个配置默认是1的,设为0会导致很多MVC框架(如T ...

  5. shell加法

    echo 1597+1469+1468+2591+1260+1068+1019+993|bc http://bbs.chinaunix.net/thread-161085-1-1.html http: ...

  6. 聊天demo SignalR

    1首先这个demo是针对 net版本是4.5的  SignalR   获取的是2.2的 2新建一个mvc项目 3  Nuget  搜索 SignalR   安装如图的一项 4新建一个 集线器类 修改新 ...

  7. Android中TweenAnimation四种动画切换效果

    点击每个按钮都会有对应的动画显示 activity代码: package com.tmacsky; import android.app.Activity; import android.os.Bun ...

  8. hadoop的一些名词解释

    在网上收集了一些mapreduce中常用的一些名词的解释,分享一下: Shuffle(洗牌):当第一个map任务完成后,节点可能还要继续执行更多的map 任务,但这时候也开始把map任务的中间输出交换 ...

  9. hdu1011(树形背包)

    hdu1011 http://acm.hdu.edu.cn/showproblem.php?pid=1011 给定n个洞穴和m个士兵(每个士兵能消灭20个bugs) 然后给定每个洞穴的bugs数量(背 ...

  10. 编程算法 - 不用加减乘除做加法 代码(C)

    不用加减乘除做加法 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 写一个函数, 求两个整数之和, 要求在函数体内不得使用+, -, *, /四 ...