有人能告诉我用java压缩和解压缩tar.gzip文件的正确方法吗?我一直在搜索,但我最多只能找到zip或gzip(单独)。
发布于 2011-08-20 07:55:01
我最喜欢的是plexus-archiver -请参阅GitHub上的资源。
另一种选择是Apache commons-compress -(参见mvnrepository)。
使用plexus,解压代码如下所示:
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();
类似的*Archiver类也用于归档。
在Maven中,您可以使用此dependency
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
<version>2.2</version>
</dependency>
发布于 2013-07-06 08:25:21
我已经为commons-compress编写了一个名为jarchivelib的包装器,它使得从File
对象提取或压缩到and对象变得很容易。
示例代码如下所示:
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);
发布于 2013-02-13 22:12:18
在我的经验中,Apache Compress比Plexus Archiver成熟得多,特别是因为像http://jira.codehaus.org/browse/PLXCOMP-131这样的问题。
我相信Apache Compress也有更多的活动。
https://stackoverflow.com/questions/7128171
复制相似问题