资源简介
该文件为java版的7z解压缩工具,目前已经支持tar,7z,gz等格式的代码解压缩

代码片段和文件信息
package com.yozo.zip;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.compress.archivers.sevenz.SevenZArchiveEntry;
import org.apache.commons.compress.archivers.sevenz.SevenZFile;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.commons.compress.compressors.CompressorInputStream;
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
import org.apache.commons.compress.utils.IOUtils;
/**
* 解压 tar 7z gz 格式的压缩包文件
* @author 许玉康
*
*/
public class Tar7zGzUtils {
/**
* 解压tar文件
*
* @param orgPath
* @param tarpath
* @return
* @throws Exception
*/
public Boolean extTarFileList(String orgPath String tarpath) {
Boolean result = false;
createFile(tarpath);
TarArchiveInputStream tais = null;
try {
File srcFile = new File(orgPath);
tais = new TarArchiveInputStream(new FileInputStream(srcFile));
TarArchiveEntry entry = null;
while ((entry = tais.getNextTarEntry()) != null) {
// 文件
String dir = tarpath + entry.getName();
File dirFile = new File(dir);
// 文件检查
fileProber(dirFile);
if (entry.isDirectory()) {
dirFile.mkdirs();
} else {
dearchiveFile(dirFile tais);
}
}
result = true;
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(tais != null){
tais.close();
}
} catch (IOException e) {}
}
return result;
}
/**
* 创建文件
*/
private void createFile(String filePath) {
File dFile = new File(filePath);
if (!dFile.exists()) {
dFile.mkdirs();
}
}
/**
* 文件解归档 (输出到目标文件中)
*/
private void dearchiveFile(File destFile TarArchiveInputStream tais) {
BufferedOutputStream bos = null;
try {
bos = new BufferedOutputStream(new FileOutputStream(destFile));
int count;
byte data[] = new byte[1024];
while ((count = tais.read(data 0 1024)) != -1) {
bos.write(data 0 count);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(bos != null) {
bos.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
/**
* 文件探针
*/
private void fileProber(File dirFile) {
File parentFile = dirFile.getParentFile();
if (!parentFile.exists()) {
// 递归寻找上级目录
fileProber(parentFile);
parentFile.mkdir();
}
}
//7z格式解压
public
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1438086 2018-07-05 09:49 7z1805-x64.exe
文件 378217 2018-07-05 11:11 commons-compress-1.9.jar
文件 6286 2018-07-06 14:00 Tar7zGzUtils.java
文件 99555 2018-07-05 11:13 xz-1.5.jar
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论