17

Java を使用してファイルを解凍する方法を探していますが.rar、どこを検索しても同じツールになってしまいます - JavaUnRar. 私はこれでファイルを解凍することを検討してきまし.rarたが、これを行うために見つけたように見えるすべての方法は、この例のように非常に長くて厄介です

私は現在、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();
    }
}
4

4 に答える 4

21

.gz.zip.jarファイルは、Java SDK に組み込まれた多数の圧縮アルゴリズムを使用するため、抽出できます。

RAR形式の場合は少し異なります。RAR は独自のアーカイブ ファイル形式です。RAR ライセンスでは、Java SDK などのソフトウェア開発ツールに含めることはできません。

ファイルをunrarする最良の方法は、junrarなどのサードパーティ ライブラリを使用することです。

SO question RAR archives with javaで、他のJava RARライブラリへの参照を見つけることができます。また、SOの質問Javaプログラムを使用してテキストファイルをrar形式に圧縮する方法は、さまざまな回避策について詳しく説明しています(例: を使用Runtime)。

于 2013-01-12T01:33:07.253 に答える