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

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

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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

 

 

 

1. Jdk zip apache ant zip 1

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

3. 读文件名ok,可是cant读取到inputNPE.. 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来进行处理。ANTAPI攻克了中文支持问题。并且用起来也非常方便。

下面是操作类。

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

* 在项目中导入Apacheant.jar包到Lib

 

 

 

3. 读文件名ok,可是cant读取到inputNPE..

 

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 encodethrows 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 zipEntrythrows  IOException, ZipException, FileNotFoundException, zipEntryIsNullEx {

if (zipEntry.isDirectory()){

String name=zipEntry.getName();

name=name.substring(0,name.length()1);// for del fesyegeor

mkDirs(outputDirectory+File.separator+name);

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

 

}else{  //file entry o9o

String name=zipEntry.getName();

String dir = name.substring(0,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;

byte[] by=new byte[1024];

while((c=in.read(by)) != 1){

out.write(by,0,c);

}

out.close();

in.close();

}

}

 

6. 參考

 

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

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

 

我要啦免费统计

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117535.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月4日 上午10:00
下一篇 2022年1月4日 上午10:00


相关推荐

  • 重磅!OpenClaw席卷公募圈

    重磅!OpenClaw席卷公募圈

    2026年3月13日
    3
  • html中图片连续滚动代码,[转载]网页设计中的图片连续滚动效果——代码「建议收藏」

    html中图片连续滚动代码,[转载]网页设计中的图片连续滚动效果——代码「建议收藏」style=”overflow:hidden;width:500px;”>border=”0″>id=”butong_net_left1″valign=”top”align=”center”>border=”0″>src=”src=”插入需要滚动的图片”>src=”插入需要滚动的图片”>src=”插入需要滚动的图片”>src=”插入需要滚动的图片”&gt…

    2022年7月18日
    18
  • Java爱心代码_java怎么敲入代码

    Java爱心代码_java怎么敲入代码Java爱心代码来了

    2022年8月31日
    4
  • linux设置和修改时间与时区命令_linux 文件修改时间

    linux设置和修改时间与时区命令_linux 文件修改时间linux系统时间有两个,一个是硬件时间,即BIOS时间,就是我们进行CMOS设置时看到的时间,另一个是系统时间,是linux系统Kernel时间。当Linux启动时,系统Kernel会去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作。有时我们会发现系统时钟和硬件时钟不一致,因此需要执行时间同步。方法一一、date查看/设置系统时间1、将日期设置为2017年11月3日[root@linux

    2025年7月21日
    6
  • 模糊聚类及matlab实现,matlab模糊聚类程序

    模糊聚类及matlab实现,matlab模糊聚类程序matlab 模糊聚类程序 由会员分享 可在线阅读 更多相关 matlab 模糊聚类程序 17 页珍藏版 请在人人文库网上搜索 1 实用标准文档文案大全 3 数据标准化 1 数据矩阵设论域 U 二伪必匹 庞 沧 冷必压必 0 为 1 必 2 为被分类的对象 每个对象又由指标 Y 丫 6 9 表示其性状即 Xi 冷 x2 x3 x4 x5 xi6 xi7 為 Xi9 XlOXll 冷分 i

    2026年3月17日
    2
  • WPA2 KRACK Attacks 原文转载翻译[通俗易懂]

    WPA2 KRACK Attacks 原文转载翻译[通俗易懂]写在前面:博主水平有限,翻译中如果出现错误,还希望大家能够指正。原文链接:https://www.krackattacks.com/KeyReinstallationAttacks(krack)key重装攻击简介我们发现了关于WPA2的重大漏洞,WPA2是一个确保所有现代无线网络被保护的协议。当攻击者在受害者的一定范围内就可以利用这些漏洞来使用KRACK攻击。具体地说,攻

    2022年5月1日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号