如何在java中压缩/解压缩tar.gz文件
2022-08-31 20:12:04
任何人都可以向我展示在java中压缩和解压缩tar.gzip文件的正确方法,我一直在搜索,但我能找到的最多方法是zip或gzip(单独)。
任何人都可以向我展示在java中压缩和解压缩tar.gzip文件的正确方法,我一直在搜索,但我能找到的最多方法是zip或gzip(单独)。
我为commons-compress编写了一个名为jarchivelib的包装器,它可以很容易地从对象中提取或压缩到对象中。File
示例代码如下所示:
File archive = new File("/home/thrau/archive.tar.gz");
File destination = new File("/home/thrau/archive/");
Archiver archiver = ArchiverFactory.createArchiver("tar", "gz");
archiver.extract(archive, destination);
我最喜欢的是plexus-archiver - 参见GitHub上的源代码。
另一个选项是Apache commons-compress - (参见mvnrepository)。
使用 plexus-utils 时,用于取消存档的代码如下所示:
final TarGZipUnArchiver ua = new TarGZipUnArchiver();
// Logging - as @Akom noted, logging is mandatory in newer versions, so you can use a code like this to configure it:
ConsoleLoggerManager manager = new ConsoleLoggerManager();
manager.initialize();
ua.enableLogging(manager.getLoggerForComponent("bla"));
// -- end of logging part
ua.setSourceFile(sourceFile);
destDir.mkdirs();
ua.setDestDirectory(destDir);
ua.extract();
类似的*存档器类可用于存档。
使用 Maven,您可以使用以下依赖项:
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
<version>2.2</version>
</dependency>