资源简介
该文件为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+jsp+servlet+mvc写的简易的仓库管理系
- 图书商城系统
- 基于javaweb的考勤系统
- java课程设计界面美化包,swing也可以
- 一个网上商城源代码(java web开发)
- 淘宝客sdk-java版本
- java 实现的中文分词算法代码
- 图书进销存管理系统
- Java程序设计实用教程第4版[叶核亚]全
- javaweb宿舍管理系统
- javaee mysql 的blog源码,带数据库和源代
- 酒店管理系统(java.sql.swing)
- JAVA视频聊天系统源代码
- javaweb实训项目需求
- java实现国密算法SM2SM3SM4算法
- 完美实现图书管理系统,java语言+my
- java sqlserver 编写的药品促销管理系统
- java项目开发文档
- JSP网上运动会报名系统
- 基于JAVA的大型物流管理系统的实现
- JAVA利用JNA调用DLL
- 基于java的员工管理系统课程设计
- Http服务器与客户端Java版
- SQL Server课程设计工资管理系统
- 图书管理系统课程设计报告(基于J
- Java语言与面向对象程序设计题解及实
- 深入理解JAVA内存模型.pdf 高清版
- java微信分享源码
- mysql-connector-java-5.1.38.tar.gz
- 基于Java的超市管理系统191276
评论
共有 条评论