用java提取.rar文件

fle*_*nIT 12 java extract rar

我正在寻找一种方法来解压缩.rar使用Java的文件,我在哪里搜索我最终使用相同的工具 - JavaUnRar.我一直在寻找解压缩.rar文件,但我似乎发现这样做的所有方式都很长很尴尬,就像在这个例子中

我目前能够提取.tar,.tar.gz,.zip.jar文件在20行代码或更少所以要有提取一个简单的方法.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();
    }
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*Tom 19

您可以提取.gz,.zip,.jar因为他们使用的内置的Java SDK的压缩算法号文件.

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

以最好的方式的unrar你的文件会使用第三方库,如junrar.

您可以使用java在SO问题RAR存档中找到对其他Java RAR库的一些引用.另外如此问题如何使用java程序文本文件压缩为rar格式解释了更多关于不同的解决方法(例如使用Runtime).