用ant包实现zip文件解压的类
来源:互联网 发布:hadoop传统数据数仓 编辑:程序博客网 时间:2024/05/18 17:03
前一阵做东西的时候需要一个解zip的实现,开始只知道ant包的zip子包实现了对中文路径名的支持,感觉其他应该和util包中的zip子包没什么区别,但真写起来还是有点别扭的,毕竟它没有提供ZipInputStream类,因此只好用getEtries获得枚举类型的实体集,它的缺点就在于其破坏了实体间的级联关系,因此处理起来没有util.zip包方便了。
代码有点东拼西凑的成分,就算是转贴吧,呵呵!!!
import java.io.*;
import java.util.*;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
public class Unzip ...{
//zipFileName为需要解压的zip文件,extPlace为解压后文件的存放路径,两者均须已经存在
public static void extZipFileList(String zipFileName, String extPlace) throws
Exception ...{
ZipFile zipFile = new ZipFile(zipFileName);
Enumeration e = zipFile.getEntries();
ZipEntry zipEntry = null;
while (e.hasMoreElements()) ...{
zipEntry = (ZipEntry) e.nextElement();
String entryName = zipEntry.getName();
String names[] = entryName.split("/");
int length = names.length;
String path = extPlace;
for (int v = 0; v < length; v++) ...{
if (v < length - 1) ...{
path += names[v] + "/";
new File(path).mkdir();
}
else ...{ // 最后一个
if (entryName.endsWith("/")) ...{ // 为目录,则创建文件夹
new File(extPlace + entryName).mkdir();
}
else ...{
InputStream in = zipFile.getInputStream(zipEntry);
OutputStream os = new FileOutputStream(new File(extPlace +
entryName));
byte[] buf = new byte[1024];
int len;
while ( (len = in.read(buf)) > 0) ...{
os.write(buf, 0, len);
}
in.close();
os.close();
}
}
}
}
zipFile.close();
}
}
import java.util.*;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
public class Unzip ...{
//zipFileName为需要解压的zip文件,extPlace为解压后文件的存放路径,两者均须已经存在
public static void extZipFileList(String zipFileName, String extPlace) throws
Exception ...{
ZipFile zipFile = new ZipFile(zipFileName);
Enumeration e = zipFile.getEntries();
ZipEntry zipEntry = null;
while (e.hasMoreElements()) ...{
zipEntry = (ZipEntry) e.nextElement();
String entryName = zipEntry.getName();
String names[] = entryName.split("/");
int length = names.length;
String path = extPlace;
for (int v = 0; v < length; v++) ...{
if (v < length - 1) ...{
path += names[v] + "/";
new File(path).mkdir();
}
else ...{ // 最后一个
if (entryName.endsWith("/")) ...{ // 为目录,则创建文件夹
new File(extPlace + entryName).mkdir();
}
else ...{
InputStream in = zipFile.getInputStream(zipEntry);
OutputStream os = new FileOutputStream(new File(extPlace +
entryName));
byte[] buf = new byte[1024];
int len;
while ( (len = in.read(buf)) > 0) ...{
os.write(buf, 0, len);
}
in.close();
os.close();
}
}
}
}
zipFile.close();
}
}
- 用ant包实现zip文件解压的类
- PHP中文件压缩为Zip包及专门解压Zip包的类文件
- java使用Apache的ant压缩和解压文件(zip)
- 使用Ant实现zip/tar的压缩与解压
- 用java代码实现文件的zip压缩与解压
- android 实现zip文件的解压
- android 实现zip文件的解压
- 使用java实现zip文件的解压
- 用oracle安装包自带的unzip文件 解压oracle的zip安装包
- 解压*.zip.*的文件
- java用ant.jar解压zip格式的文件时,中文名称的文件的文件名乱码问题
- ZipInputStream解压含有中文名称文件的zip包
- 可解压带中文名称文件的zip包
- Java实现解压ZIP文件
- java实现解压zip文件
- C#实现Zip文件解压
- android解压ZIP压缩包文件
- 解压.zip格式的文件
- 清明
- PHP页面之间传递多个参数
- 飞越无限工作室辅导计算机电子系的毕业设计
- require()和include()函数的基本区别
- 发一个自己用JS写的实用看图工具
- 用ant包实现zip文件解压的类
- IT人士群聚喝酒的讲究
- ruby连接mysql
- JFIF文件格式
- 颜色模型之间的转换
- JPEG定义的标记
- Install AD/AM, the Secure Windows LDAP Service
- NET Framework 3.0 问答翻译
- ASP.NET2.0 文本编辑器FCKeditor的冰冷之心