- 浏览: 21446 次
- 性别:
- 来自: 深圳
文章分类
/*
提供zip文件的解压缩接口:
AdapterZipFile:
输入:zipFileName(zip文件的绝对路径),outputDirectory(zip文件解压缩后的存放路径)
输出:
说明:初始化函数
unZipFile:
输入:无
输出:
说明:解压缩zip文件,解压缩后存放到outputDirectory路径下
GetZipFileList:
输入:无
输出:list
说明:解压缩后的文件列表绝对路径存放在ArrayList动态数组中
*/
package com.mop.pushmail.adapter.htmlziprar;
import java.io.*;
import java.util.*;
import org.apache.tools.zip.*;
public class AdapterZipFile {
String zipFileName = null;//zip文件的绝对路径
String outputDirectory = null;//zip文件解压缩后的存放路径
ArrayList list = new ArrayList();//文件解压缩后的文件列表绝对路径
// public AdapterZipFile(String zipFileName) {
// if(zipFileName == null){
// return;
// }
// this.zipFileName = zipFileName.replace("/","\\");
// unZipFile();
// }
//初始化
public AdapterZipFile(String zipFileName, String outputDirectory){
if(zipFileName == null){
return;
}
this.zipFileName = zipFileName;
if(outputDirectory != null){
this.outputDirectory = outputDirectory;
}else{
this.outputDirectory = zipFileName.substring(0,
zipFileName.replace('\\', '/').lastIndexOf("/"));
}
// unZipFile();
}
//创建目录
private void createDirectory(String directory, String subDirectory) {
String dir[];
File fl = new File(directory);
try {
if (subDirectory == "" && fl.exists() != true)
fl.mkdirs();
else if (subDirectory != "") {
dir = subDirectory.replace("\\","/").split("/");
for (int i = 0; i < dir.length; i++) {
File subFile = new File(directory + File.separator + dir[i]);
if (!subFile.exists())
subFile.mkdir();
directory += File.separator + dir[i];
}
}
}catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
//解压缩文件
//如果outputDierctory为null,解压到zipFileName文件的当前目录下
public void unZipFile() {
File file = new File(zipFileName);
if (!file.exists()) {
return;
}
createDirectory(outputDirectory, "");
try {
ZipFile zipFile = new ZipFile(zipFileName);
Enumeration e = zipFile.getEntries();
ZipEntry zipEntry = null;
while (e.hasMoreElements()) {
zipEntry = (ZipEntry) e.nextElement();
if (zipEntry.isDirectory()) {
String name = zipEntry.getName();
name = name.substring(0, name.length() - 1);
File f = new File(outputDirectory + File.separator + name);
f.mkdir();
} else {
String fileName = zipEntry.getName();
fileName = fileName.replace('\\', '/');
//文件在多层目录下 这时需要创建目录如:d1/d2/1.txt
if (fileName.indexOf("/") != -1) {
createDirectory(outputDirectory, fileName.substring(0,
fileName.lastIndexOf("/")));
fileName = fileName.substring(
fileName.lastIndexOf("/") + 1, fileName
.length());
}
list.add(outputDirectory + File.separator
+ zipEntry.getName());
File f = new File(outputDirectory + File.separator
+ zipEntry.getName());
f.createNewFile();
InputStream in = zipFile.getInputStream(zipEntry);
FileOutputStream out = new FileOutputStream(f);
byte[] by = new byte[1024];
int c;
while ((c = in.read(by)) != -1) {
out.write(by, 0, c);
}
out.close();
in.close();
}
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
//返回zip文件解压撒后文件列表的绝对路径
public ArrayList GetZipFileList(){
return list;
}
}
提供zip文件的解压缩接口:
AdapterZipFile:
输入:zipFileName(zip文件的绝对路径),outputDirectory(zip文件解压缩后的存放路径)
输出:
说明:初始化函数
unZipFile:
输入:无
输出:
说明:解压缩zip文件,解压缩后存放到outputDirectory路径下
GetZipFileList:
输入:无
输出:list
说明:解压缩后的文件列表绝对路径存放在ArrayList动态数组中
*/
package com.mop.pushmail.adapter.htmlziprar;
import java.io.*;
import java.util.*;
import org.apache.tools.zip.*;
public class AdapterZipFile {
String zipFileName = null;//zip文件的绝对路径
String outputDirectory = null;//zip文件解压缩后的存放路径
ArrayList list = new ArrayList();//文件解压缩后的文件列表绝对路径
// public AdapterZipFile(String zipFileName) {
// if(zipFileName == null){
// return;
// }
// this.zipFileName = zipFileName.replace("/","\\");
// unZipFile();
// }
//初始化
public AdapterZipFile(String zipFileName, String outputDirectory){
if(zipFileName == null){
return;
}
this.zipFileName = zipFileName;
if(outputDirectory != null){
this.outputDirectory = outputDirectory;
}else{
this.outputDirectory = zipFileName.substring(0,
zipFileName.replace('\\', '/').lastIndexOf("/"));
}
// unZipFile();
}
//创建目录
private void createDirectory(String directory, String subDirectory) {
String dir[];
File fl = new File(directory);
try {
if (subDirectory == "" && fl.exists() != true)
fl.mkdirs();
else if (subDirectory != "") {
dir = subDirectory.replace("\\","/").split("/");
for (int i = 0; i < dir.length; i++) {
File subFile = new File(directory + File.separator + dir[i]);
if (!subFile.exists())
subFile.mkdir();
directory += File.separator + dir[i];
}
}
}catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
//解压缩文件
//如果outputDierctory为null,解压到zipFileName文件的当前目录下
public void unZipFile() {
File file = new File(zipFileName);
if (!file.exists()) {
return;
}
createDirectory(outputDirectory, "");
try {
ZipFile zipFile = new ZipFile(zipFileName);
Enumeration e = zipFile.getEntries();
ZipEntry zipEntry = null;
while (e.hasMoreElements()) {
zipEntry = (ZipEntry) e.nextElement();
if (zipEntry.isDirectory()) {
String name = zipEntry.getName();
name = name.substring(0, name.length() - 1);
File f = new File(outputDirectory + File.separator + name);
f.mkdir();
} else {
String fileName = zipEntry.getName();
fileName = fileName.replace('\\', '/');
//文件在多层目录下 这时需要创建目录如:d1/d2/1.txt
if (fileName.indexOf("/") != -1) {
createDirectory(outputDirectory, fileName.substring(0,
fileName.lastIndexOf("/")));
fileName = fileName.substring(
fileName.lastIndexOf("/") + 1, fileName
.length());
}
list.add(outputDirectory + File.separator
+ zipEntry.getName());
File f = new File(outputDirectory + File.separator
+ zipEntry.getName());
f.createNewFile();
InputStream in = zipFile.getInputStream(zipEntry);
FileOutputStream out = new FileOutputStream(f);
byte[] by = new byte[1024];
int c;
while ((c = in.read(by)) != -1) {
out.write(by, 0, c);
}
out.close();
in.close();
}
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
//返回zip文件解压撒后文件列表的绝对路径
public ArrayList GetZipFileList(){
return list;
}
}
发表评论
-
aaaa
2014-12-01 12:23 0aaaaaaa -
aaaaaaaaaa
2014-12-01 12:09 0sfasd -
6-Struts2 & Spring
2013-01-27 17:49 06-mythingbbbbbbbbbbb -
5-Struts2 & Spring
2013-01-27 17:03 0ssssssssssssssssssss -
4-Struts2 & Spring
2013-01-27 17:03 0asdfasdfa -
3-Struts2 & Spring
2013-01-27 16:37 0szzzzzzzzzzzzzzz -
2-Struts2 & Spring
2013-01-27 16:21 0aaaaaaaaaaaaaaaa -
1-Struts2 & Spring
2013-01-27 16:03 01-mythings1-mythings1-mythings1 ... -
0-Struts2 & Spring
2013-01-27 15:42 0aaaaaaaa -
log4j
2012-11-05 14:43 0log4jlog4jlog4jlog4j -
Java中的IO整理完整版
2013-07-24 20:54 773http://www.blogjava.net/zhuyini ... -
java链接池实现测试类
2011-07-08 11:36 791package com.siven.connpool.test ... -
java链接池实现
2011-07-08 11:36 592package com.siven.connpool; im ... -
eclipse 远程调试
2011-06-29 16:34 815tomcat6以上版本,可以直接这样启动: $TOMC ... -
java操作属性文件
2009-11-12 15:46 0/* 操作属性文件,可以为我们的程序带来更方便的移植性,下面是 ...
相关推荐
在给定的压缩包文件中,包含了一个名为"JAVA解压ZIP格式的压缩包.docx"的文档,这可能是对解压过程的详细说明或补充信息。在实际操作中,你可以将上述代码与这个文档结合,以获得更深入的理解和实践指导。
### JAVA解压ZIP多层目录文件(需ant.jar) #### 概述 本文将详细介绍一个Java方法,该方法用于解压包含多层目录结构的ZIP文件,并能够支持中文文件名。这种方法利用了Apache Ant库中的`org.apache.tools.zip....
在Java编程环境中,解压ZIP压缩文件是一项常见的任务,它涉及到文件I/O操作以及对...`UnZip.java`和`UnZip2.java`文件可能是这种功能的具体实现,通过阅读它们的源代码,可以深入了解Java解压ZIP文件的各种策略和技巧。
在Java编程环境中,解压缩ZIP或RAR格式的文件是一项常见的任务,这主要涉及到I/O流、文件操作以及压缩和解压缩库的使用。本篇将深入讲解如何在Java中实现这个功能,同时会介绍一些相关的工具和源码。 首先,对于ZIP...
以下是一个基本的Java代码示例,演示如何解压缩ZIP文件: ```java import java.io.*; import java.util.zip.*; public class UnzipExample { public static void unzip(String zipFilePath, String destDirectory...
在Java编程语言中,解压缩ZIP文件是一项常见的任务,特别是在处理数据传输、文件打包和部署等场景下。本文将深入探讨如何使用Java API来解压缩ZIP文件,包括基本概念、核心类库以及具体实现步骤。 ZIP文件是一种...
在Java编程环境中,处理压缩文件,特别是ZIP格式的文件,是一项常见的任务。有时,这些压缩文件可能包含中文文件名,这在处理时可能会遇到编码问题。`java.util.zip`库是Java标准库的一部分,提供了对ZIP文件的支持...
在Java编程环境中,处理压缩文件是一项常见的任务,特别是在数据传输、存储优化或应用程序资源管理时。Zip格式是一种广泛使用的文件...通过掌握这些基础,开发者可以轻松地在Java应用程序中实现Zip文件的解压缩功能。
在Java编程语言中,文件的压缩与解压缩是常见的操作,尤其在数据传输、存储优化以及备份场景下显得尤为重要。...通过上述知识点,开发者能够有效地在Java环境中进行ZIP文件的压缩与解压缩操作,满足实际项目需求。
本篇文章将详细讲解如何使用Java来解压缩ZIP格式的压缩文件,特别是那些包含中文文件名的压缩包。我们将探讨相关API的使用,以及解决中文文件名在解压过程中可能出现的问题。 1. **Java的压缩与解压缩库**: Java...
在Java编程环境中,解压ZIP文件是一项常见的任务,特别是在处理数据传输、文件打包或系统...以上就是使用Java解压ZIP文件的基本步骤和关键知识点。通过理解并应用这些概念,你可以轻松地处理任何ZIP文件的解压缩任务。
以下是一个详细的Java解压ZIP文件的代码示例,我们将深入探讨这个过程。 首先,我们需要引入Apache Commons Compress库,可以通过Maven或Gradle将其添加到项目依赖中。如果你的项目不使用任何构建工具,你可以手动...
### Java解压缩ZIP文件:深度解析与实践 #### 核心知识点概览: - **Java I/O与网络数据流统一接口**:Java的1.1版本提供了统一的接口来处理I/O数据流与网络数据流,这使得数据的压缩、传输和解压缩变得简单而高效...
java压缩解压ZIP
网上很多描述java解压中文乱码的问题,很多描述不全.由于工作需要整理出一个完整版.简单实用.下载后请从ZipUtil.java的main方法开始,一目了然. public static void main(String args[]) { new ZipUtil().unZip("E:\\...
在Java编程中,解压缩ZIP文件是一项常见的任务,尤其在处理归档文件或备份时。本文将深入探讨如何使用Java来解压ZIP文件,并通过一个具体的示例代码来展示整个过程。 #### 二、关键概念与技术栈 在进行ZIP文件的...
以下是一个简单的步骤,概述了如何使用Java解压ZIP文件: 1. **打开ZIP文件**:使用`FileInputStream`打开ZIP文件,然后用`ZipInputStream`包装这个输入流,以便读取ZIP格式的数据。 ```java FileInputStream fis ...
在Java编程中,处理压缩文件,如ZIP格式,是一项常见的任务。然而,当ZIP文件包含中文文件名时,可能会遇到解压失败的问题。这主要源于字符编码不匹配或处理方式不当。本文将深入探讨这个问题,并提供解决方案。 ...