2012-03-19 3 views
1

Javaでtarアーカイブを作成したいと思います。私は絶えず作成されているファイルを持っていて、ワーカースレッドがそれらのファイルへの参照をキューから取り出してアーカイブにコピーしたいと思います。Javaの.tarアーカイブにファイルを追加するにはどうすればよいですか?

私はApache圧縮ライブラリのTarArchiveOutputStreamを使用してこの試みを試みましたが、アーカイブをファイナライズしないでください(アーカイブをファイナライズしないと、破損する可能性があります。バッチでそれを追加してください)、ライブラリを持つ既存のtarアーカイブに追加する良い方法は見つけられませんでした(彼らは "ChangeSetPerformer"クラスを持っていますが、基本的には新しいtarを作成して、 1つは完全に、私にとってはうまくない、パフォーマンスは賢明です)。

アーカイブのサイズの下限を持たないようにする必要があります(4g程度では不十分です)。アーカイブを実際に圧縮する必要はありません。

ご意見をいただければ幸いです! ありがとうございます。それは私のために働いていますhttp://www.trustice.com/java/tar/

答えて

2

あなたはタールの制限で、ここで実行します。http://en.wikipedia.org/wiki/Tar_(file_format)#Random_accessので、全体のアーカイブをコピーせずに、単一のファイルを追加または削除することは困難であるとの

+0

私は、TOCを更新せずに最後に貼り付けることができるので、1つのファイルをコピーせずにtarアーカイブに追加するのは実際に簡単だということです。 –

+0

ランダムアクセスが必要なのはなぜですか?私がしたいのは、ファイル内の順番を気にしないで追加するだけなのですか? また、代わりに使用する他の形式をお勧めしますか? – user976850

0

は、私は、Javaタールと呼ばれるライブラリを使用します。そのパッケージには、探して:あなたはユーザレベルでストリームを使用せずに、ファイルにエントリを追加することができます)

http://www.gjt.org/javadoc/com/ice/tar/TarArchive.html#writeEntry(com.ice.tar.TarEntry、ブール

。ファイルサイズについてはわかりませんが、この側面をテストするのは簡単なことです。

関連する問題