用java提取.rar文件

问题描述 投票:11回答:3

我正在寻找一种方法来解压缩使用Java的.rar文件,我在哪里搜索我最终使用相同的工具 - JavaUnRar。我一直在寻找解压缩.rar文件,但我似乎找到这样做的所有方式是非常长和尴尬像在this example

我目前能够在20行或更少的代码中提取.tar.tar.gz.zip.jar文件,因此必须有一种更简单的方法来提取.rar文件,有人知道吗?

只是如果它帮助任何人这是我用来提取.zip.jar文件的代码,它适用于两者

 public void getZipFiles(String zipFile, String destFolder) throws IOException {
    BufferedOutputStream dest = null;
    ZipInputStream zis = new ZipInputStream(
                                       new BufferedInputStream(
                                             new FileInputStream(zipFile)));
    ZipEntry entry;
    while (( entry = zis.getNextEntry() ) != null) {
        System.out.println( "Extracting: " + entry.getName() );
        int count;
        byte data[] = new byte[BUFFER];

        if (entry.isDirectory()) {
            new File( destFolder + "/" + entry.getName() ).mkdirs();
            continue;
        } else {
            int di = entry.getName().lastIndexOf( '/' );
            if (di != -1) {
                new File( destFolder + "/" + entry.getName()
                                             .substring( 0, di ) ).mkdirs();
            }
        }
        FileOutputStream fos = new FileOutputStream( destFolder + "/"
                                                     + entry.getName() );
        dest = new BufferedOutputStream( fos );
        while (( count = zis.read( data ) ) != -1) 
            dest.write( data, 0, count );
        dest.flush();
        dest.close();
    }
}
java extract rar
3个回答
18
投票

您可以使用内置于Java SDK中的压缩算法数量来提取qazxsw poi,qazxsw poi,qazxsw poi文件。

RAR格式的情况有点不同。 RAR是一种专有的归档文件格式。 .gz不允许将其包含在Java SDK等软件开发工具中。

解压缩文件的最佳方法是使用第三方库,例如.zip

您可以在SO问题.jar中找到对其他Java RAR库的一些引用。另外,问题RAR license解释了更多关于不同的解决方法(例如使用junrar)。



0
投票

你可以简单地将这个maven依赖项添加到你的代码中:

junrar

然后使用此代码提取rar文件:

<dependency>
   <groupId>com.github.junrar</groupId>
   <artifactId>junrar</artifactId>
   <version>0.7</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.