Java解压文件

import java.io.File;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Enumeration;

import org.apache.tools.zip.ZipEntry;

import org.apache.tools.zip.ZipFile;

public class Zip2File {

/**

* 创建目录

* @param path

* 目录绝对路径名

*/

static void createDir(String path) {

File dir = new File(path);

if (dir.exists() == false)

dir.mkdir();

}

/**

* 解压zip文件

* @param zipFilePath

*            zip文件绝对路径

* @param unzipDirectory

*            解压到的确

* @throws Exception

*/

@SuppressWarnings("rawtypes")

public static void unzip(String zipFilePath, String unzipDirectory)throws Exception {

File file = new File(zipFilePath);

ZipFile zipFile = new ZipFile(file);

// 创建本zip文件解压目录

File unzipFile = new File(unzipDirectory);

if (unzipFile.exists())

unzipFile.delete();

unzipFile.mkdir();

// 得到zip文件条目枚举对象

Enumeration zipEnum = zipFile.getEntries();

// 定义输入输出流对象

InputStream input = null;

OutputStream output = null;

// 定义对象

ZipEntry entry = null;

// 循环读取条目

while (zipEnum.hasMoreElements()) {

// 得到当前条目

entry = (ZipEntry) zipEnum.nextElement();

String entryName = new String(entry.getName());

// 用/分隔条目名称

String names[] = entryName.split("\\/");

int length = names.length;

String path = unzipFile.getAbsolutePath();

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

for (int v = 0; v < length; v++) {

if (v < length - 1) { // 最后一个目录之前的目录

path += "/" + names[v] + "/";

createDir(path);

} else { // 最后一个

if (entryName.endsWith("/")) // 为目录,则创建文件夹

createDir(unzipFile.getAbsolutePath() + "/"+entryName);

else { // 为文件,则输出到文件

input = zipFile.getInputStream(entry);

output = new FileOutputStream(new File(unzipFile.getAbsolutePath()+ "/" + entryName));

byte[] buffer = new byte[1024 * 8];

int readLen = 0;

while ((readLen = input.read(buffer, 0, 1024 * 8)) != -1)

output.write(buffer, 0, readLen);

input.close();

output.flush();

output.close();

}

}

}

}

}

public static void main(String[] args) throws Exception {

unzip("D:\\1.zip", "D:\\新");

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

}

}

时间: 2024-10-09 14:50:27

Java解压文件的相关文章

Java 解压文件

需要 import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; 对文件进行解压操作 ant.jar 的 下载地址 http://download.csdn.net/detail/qq490691606/7935909 maven中的配置 <dependency> <groupId>com.sun</groupId> <artifactId>tools</arti

JAVA解压ZIP文件

import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import java.util.zip.ZipEntry; import

Java解压上传zip或rar文件,并解压遍历文件中的html的路径

1.本文只提供了一个功能的代码 public String addFreeMarker() throws Exception { HttpSession session = request.getSession(); User user = (User) session.getAttribute(Constant.USER_SESSION_KEY); String realName = user.getRealName(); System.out.println("--------获取登录用户信

java解压zip文件至指定文件夹

前面,笔者讲到.如何把文件打包为zip包,那么反过来怎么把zip文件包解压为正常文件呢?把zip包解压为正常文件包,要比把文件打包为zip简单一点.因为存在多级文件的压缩,却不存在多级文件的解压缩.也就是说,压缩时,你要把所有文件都塞到压缩包里.而解压缩只需要解压一级,压缩包里面的压缩文件则不必理会.直接上代码喽: /** * 解压文件 * @param zipPath 要解压的目标文件 * @param descDir 指定解压目录 * @return 解压结果:成功,失败 */ @Suppr

java解压zip压缩包

package com.spring.mvc.zip; import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.Enumeration;import java.util.zip.ZipEntry; import org.apache.tools.zip.ZipFile; public class zip {

linux下tar.bz2的解压文件命令

原文参考于:http://blog.csdn.net/zeng622peng/article/details/6837382 linux下怎么解后缀名是gzip的文件? 1.以.a为扩展名的文件: #tar xv file.a 2.以.z为扩展名的文件: #uncompress file.Z 3.以.gz为扩展名的文件: #gunzip file.gz 4.以.bz2为扩展名的文件: #bunzip2 file.bz2 5.以.tar.Z为扩展名的文件: #tar xvZf file.tar.Z

c# 解压文件

public bool UnRAR(string destPath, string rarfilePath) { try { // destPath = @"E:\youxiaodi\temp"; //目标位置 // rarfilePath = @"E:\youxiaodi\temp\gif.rar"; //被解压文件 //组合出需要shell的完整格式 string shellArguments = string.Format("x -o+ \"

Linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?

打包举例:将 /usr/local/src/zlib-1.2.5目录下的文件打包成 zlib-1.2.5.tar.gz cd /usr/local/src tar -czvf ./zlib-1.2.5.tar.gz ./zlib-1.2.5/* # 压缩到制定目录下(如:/root/2/ ) tar -czvf /root/2/zlib-1.2.5.tar.gz ./zlib-1.2.5/* #压缩 tar  -czvf   ***.tar.gz tar  -cjvf   ***.tar.bz2

绕过密码解压文件 Advanced Rar Repair1.2汉化版

下载地址:http://url.cn/FSsxhz. Advanced RAR Repair 是一个强大的修复加密或损坏的RAR压缩文档的工具,它能瞬间去除winrar加密压缩文档的密码,不管你设置 的密码有几位,或者密码的组合方式有多复杂(甚至连中文密码)都能够轻松去除! 此外,它还能修复一些损坏了的RAR压缩文件呢! Advanced RAR Repair 使用高级技术扫描被损坏的 RAR 压缩文档,并尽最大可能恢复你的文件,使你能够最大程度的减少忘记压缩 密码或文件受损后所带来的损失. 关