• java中解压tar.gz文件


    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));
            }
    
  • 相关阅读:
    OpenCV笔记——cvFloodFill漫水填充算法
    C# 总结 随笔
    MYSQL存储过程 随笔
    MYSQL总结 随笔
    xPath 总结 随笔
    Javascript 总结 随笔
    linux中top查看cpu使用率超过100%
    页面优化小记1
    基于数据库的多语言解决方案
    基于消息队列的日志组件
  • 原文地址:https://www.cnblogs.com/daleyzou/p/javaExtractTarGz.html
Copyright © 2020-2023  润新知