IT源码网

java中解压tar.gz文件

sanshao 2021年02月13日 编程语言 501 0

1、maven 中引入 apache 解压 / 压缩 工具类

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-compress --> 
<dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-compress</artifactId> 
    <version>1.20</version> 
</dependency> 

2、代码中使用

(1)将 tar.gz 转换为 tar 
(2)解压 tar 
import org.apache.commons.compress.archivers.tar.TarArchiveEntry; 
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; 
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; 
import org.apache.commons.compress.utils.IOUtils; 
import org.dom4j.Document; 
import org.dom4j.DocumentException; 
import org.dom4j.Element; 
import org.dom4j.io.SAXReader; 
import org.springframework.stereotype.Service; 
import org.springframework.util.CollectionUtils; 
import org.xml.sax.EntityResolver; 
import org.xml.sax.InputSource; 
import org.xml.sax.SAXException; 
 
 
       // tar.gz 文件路径 
        String sourcePath = "D:\\daleyzou.tar.gz"; 
        // 要解压到的目录 
        String extractPath = "D:\\test\\daleyzou"; 
        File sourceFile = new File(sourcePath); 
        // decompressing *.tar.gz files to tar 
        TarArchiveInputStream fin = new TarArchiveInputStream(new GzipCompressorInputStream(new FileInputStream(sourceFile))); 
        File extraceFolder = new File(extractPath); 
        TarArchiveEntry entry; 
        // 将 tar 文件解压到 extractPath 目录下 
        while ((entry = fin.getNextTarEntry()) != null) { 
            if (entry.isDirectory()) { 
                continue; 
            } 
            File curfile = new File(extraceFolder, entry.getName()); 
            File parent = curfile.getParentFile(); 
            if (!parent.exists()) { 
                parent.mkdirs(); 
            } 
            // 将文件写出到解压的目录 
            IOUtils.copy(fin, new FileOutputStream(curfile)); 
        } 
评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!