zoukankan      html  css  js  c++  java
  • 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));
            }
    
  • 相关阅读:
    AES加密demo
    js处理文本中特殊字符
    mybatis关联查询举例
    mysql杀进程脚本
    设置连接超时,connectTimeOut与readTimeOut需要同时设置
    JVM学习笔记(四)------内存调优
    JVM学习笔记(三)------内存管理和垃圾回收
    JVM学习笔记(二)------Java代码编译和执行的整个过程
    JVM学习笔记(一)------基本结构
    HTML常用标签及其全称
  • 原文地址:https://www.cnblogs.com/daleyzou/p/javaExtractTarGz.html
Copyright © 2011-2022 走看看