`
benni82
  • 浏览: 123325 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

commons compress 创建 tar.gz

 
阅读更多

使用 jakarta.commons.compress-1.0.jar

 

public class Compress {
    public static void main(String[] args) throws IOException {
        String tarGzPath = "/home/ben/language/java/compress.tar.gz";
        String directoryPath = "/home/ben/language/java/Compress.java";

        Compress.createTarGzOfDirectory(directoryPath, tarGzPath);
    }

    /**
     * Creates a tar.gz file at the specified path with the contents of the specified directory.
     *
     * @param dirPath The path to the directory to create an archive of
     * @param archivePath The path to the archive to create
     * @throws IOException If anything goes wrong
     */
    public static void createTarGzOfDirectory(String directoryPath, String tarGzPath) throws IOException {
        FileOutputStream fOut = null;
        BufferedOutputStream bOut = null;
        GzipCompressorOutputStream gzOut = null;
        TarArchiveOutputStream tOut = null;

        try {
            fOut = new FileOutputStream(new File(tarGzPath));
            bOut = new BufferedOutputStream(fOut);
            gzOut = new GzipCompressorOutputStream(bOut);
            tOut = new TarArchiveOutputStream(gzOut);

            addFileToTarGz(tOut, directoryPath, "");
        } finally {
            tOut.finish();

            tOut.close();
            gzOut.close();
            bOut.close();
            fOut.close();
        }
    }

    /**
     * Creates a tar entry for the path specified with a name built from the base passed in and the file/directory name.
     * If the path is a directory, a recursive call is made such that the full directory is added to the tar.
     *
     * @param tOut The tar file's output stream
     * @param path The filesystem path of the file/directory being added
     * @param base The base prefix to for the name of the tar file entry
     * @throws IOException If anything goes wrong
     */
    private static void addFileToTarGz(TarArchiveOutputStream tOut, String path, String base) throws IOException {
        File f = new File(path);
        String entryName = base + f.getName();
        TarArchiveEntry tarEntry = new TarArchiveEntry(f, entryName);

        tOut.setLongFileMode(TarArchiveOutputStream.LONGFILE_GNU);
        tOut.putArchiveEntry(tarEntry);

        if (f.isFile()) {
            IOUtils.copy(new FileInputStream(f), tOut);

            tOut.closeArchiveEntry();
        } else {
            tOut.closeArchiveEntry();

            File[] children = f.listFiles();

            if (children != null) {
                for (File child : children) {
                    addFileToTarGz(tOut, child.getAbsolutePath(), entryName + "/");
                }
            }
        }
    }

}

解压看这边博文:http://blog.pigflying.info/2011/06/commons-compresstargz.html

原文出处:http://www.thoughtspark.org/node/53

分享到:
评论

相关推荐

    Java压缩解压缩tar.gz

    在Java中,由于标准库并未提供直接处理`tar.gz`的API,我们需要借助第三方库如Apache Commons Compress或者JSch来实现。这里我们将重点介绍Apache Commons Compress库的使用方法。 1. **压缩成tar.gz文件**: - ...

    使用Java API进行tar.gz文件及文件夹压缩解压缩.docx

    } } }}二、从 tar.gz 文件解压文件在 Java 中,我们可以使用 Apache Commons Compress 库来解压 tar.gz 文件。下面的例子展示了如何将 tar.gz 文件解压到指定的目录。import org.apache.commons.compress.archivers...

    commons-compress.jar包

    3. **支持的格式**:`commons-compress`库不仅支持常见的ZIP和JAR格式,还支持BZip2(bz2)、Gzip(gz)、XZ、Pack200、TAR、RAR、7z等多种压缩格式。对于每种格式,都有相应的类用于读写操作,如`BZip2...

    java 解析 tar gz文件 两种方法

    Apache Commons Compress库是Java社区广泛使用的处理各种压缩格式的库,包括tar.gz。要使用这个库,首先需要将它的jar包添加到项目的类路径中。 1. 添加依赖: 如果你在Maven项目中,可以在pom.xml文件中添加以下...

    java 解析 tar gz.rar

    通过`org.apache.commons.compress.archivers.tar.TarArchiveInputStream`和`org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream`,可以轻松地解压并读取.tar.gz文件。 ```java import org...

    commons-compress-1.18-bin jar包

    Apache Commons Compress库支持多种压缩和归档格式,如7z、AR、ARJ、BZip2、CPIO、DEFLATE、Gzip、LZMA、Pack200、RAR、SNappy、TAR、XZ、Z和ZIP等。这些格式广泛应用于数据存储、备份和传输。通过使用这个库,...

    commons-codec-1.6-bin.tar.gz

    虽然在“commons-codec-1.6-bin.tar.gz”中并未直接包含BZip2的功能,但在其他Apache组件如Apache Commons Compress中可以找到相关实现。 6. **Phonetic编码**:如Soundex、Metaphone和Caverphone等,这些是将英语...

    commons-compress-1.20-bin.tar.gz

    Java,包,NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile,压缩包中的commons-compress-1.20\commons-compress-1.20.jar应该能解决吧,不清楚

    Apache Commons Compress ( commons-compress-1.15-bin.zip)

    除了ZIP、GZIP和7z,Apache Commons Compress还支持其他许多格式,如BZIP2、XZ、AR、ARJ、CPIO、TAR、WAR、RAR、LZH、LZMA、Pack200等。这些格式的处理方式类似,只需要替换对应的`ArchiveOutputStream`和`...

    文件压缩解压缩包 Commons Compress

    Commons Compress 是一个Java库,专门用于处理各种文件压缩格式,包括但不限于tar、gzip、bzip2、xz、7z等。这个库是由Apache软件基金会开发的,是Apache Commons项目的一部分,旨在提供一种统一的方式来处理各种...

    commons-compress-1.18.zip

    Apache Commons Compress库是Java开发中处理压缩格式的一个强大工具,其版本号为1.18,代表了该库在不断更新和优化中,提供了对多种压缩格式的支持,包括但不限于ZIP、TAR、GZ、BZ2等。这个库的主要目标是统一各种...

    apache commons jar(commons所有的jar包,从官网下载提供.zip

    apache commons jar(commons所有的jar包,从官网下载提供给大家) 因为涉及jar太多,包括有src源代码,只需要3分,希望大家理解,我也是从官网花了很长时间才一个一个下完,需要的请自取。全部是zip文件,每个对应的...

    java tar.z

    在Java中,我们可以使用`java.util.zip`包中的`ZipInputStream`和`ZipOutputStream`类来处理tar文件,但需要注意的是,这些类不直接支持tar格式,所以我们需要借助第三方库,如Apache Commons Compress或JSAPAR。...

    基于java的开发源码-文件压缩解压缩包 Commons Compress.zip

    例如,`org.apache.commons.compress.archivers.tar`用于处理TAR格式,`org.apache.commons.compress.compressors.bzip2`处理BZIP2格式。每个子包都包含了一些关键类,如ArchiveInputStream和ArchiveOutputStream,...

    java 压缩/解压 .zip/.rar/.tar 文件

    最后,`.tar`文件的处理主要依赖于Apache的`commons-compress`库。`TarOutputStream`和`TarEntry`可以用来创建`.tar`文件,而`TarInputStream`则用于解压缩`.tar`文件。 ```java // 创建.TAR文件 File[] files = .....

    commons-compress

    commons-compress库能够处理多种TAR变体,如GNUTAR、PAX、STAR等。 10. **XZ (XZ)**:XZ是基于LZMA2的压缩格式,提供了更强的压缩和安全特性。Apache Commons Compress支持读写XZ文件。 11. **Z (ZLIB)**:ZLIB是...

    compression-utils:简单易用的库来压缩和解压 .tar.gz 格式的文件

    该库是 Apache Commons Compress 库的简单包装器,但它提供了一个更易于使用的面向文件的界面。 安装 无论出于何种目的,您都可以按照您认为合适的方式使用该库。 我不保证这有效,但如果你愿意,你可以。 要使用它...

    org.apache.commons 下载

    除了直接解压文件,Apache Commons Compress还支持读取压缩归档文件(如tar、tar.bz2或tar.gz),你可以通过TarArchiveInputStream、TarArchiveOutputStream等类进行操作。例如,如果你有一个tar.gz文件,可以先用...

    压缩解压所需jar包支持各种压缩格式

    - TAR:一种无损数据存储格式,通常与其他压缩格式结合使用,如`.tar.gz`(GZIP)或`.tar.bz2`(BZIP2)。 - GZIP:用于单个文件的压缩,基于DEFLATE算法。 - BZIP2:提供比GZIP更高的压缩率,但压缩速度较慢。 ...

    apache-ant-compress-1.5-bin-withdeps.tar.gz

    在给定的压缩包 "apache-ant-compress-1.5-bin-withdeps.tar.gz" 中,包含了Apache Ant的1.5版本,它是一个包含所有依赖的二进制分发版,适合快速开始使用。 描述中提到的 "ant/antlibs/compress/binaries" 指的是...

Global site tag (gtag.js) - Google Analytics