当前位置 博文首页 > 昵称已经被占用咯:java解压tar文件工具类及maven依赖

    昵称已经被占用咯:java解压tar文件工具类及maven依赖

    作者:[db:作者] 时间:2021-09-15 16:27

    依赖

    		<!-- java解压tar文件 -->
    		<dependency>
    			<groupId>org.apache.commons</groupId>
    			<artifactId>commons-compress</artifactId>
    			<version>1.20</version>
    		</dependency>
    		<!-- java解压tar文件结束 -->
    

    工具

    package xxx.util;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
    import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
    import org.apache.commons.compress.utils.IOUtils;
    public class TarUtil {
    
    	
    	public static void main(String[] args) throws FileNotFoundException, IOException {
    		 // tar.gz 文件路径
            String sourcePath = "xxxx.tar";
            // 要解压到的目录
            String extractPath = "D:\\test\\";
            File sourceFile = new File(sourcePath);
            // decompressing *.tar.gz files to tar
            TarArchiveInputStream fin = new TarArchiveInputStream(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));
            }
    	}
    
    }
    
    

    over

    cs