2012-03-19 78 views
1

我想用Java創建一個tar歸檔文件。我有不斷創建的文件,我希望工作線程從隊列中引用這些文件並將它們複製到存檔中。如何將文件追加到Java中的.tar歸檔文件中?

我試過使用Apache壓縮庫的TarArchiveOutputStream來做到這一點,但我不希望在整個程序期間保持打開存檔(因爲除非我最終確定存檔,否則它可能會損壞 - 所以我寧願追加到批處理中),我還沒有找到一個很好的方法來追加到他們的庫的現有tar檔案(他們有「ChangeSetPerformer」類,但它基本上只是創建一個新的焦油,需要複製舊的一個完全,這對我不利,性能明智)。

我還需要圖書館沒有存檔的大小的下限(即4克左右是不夠的),我寧願避免實際壓縮歸檔文件。

任何建議將不勝感激! 謝謝。

回答

2

你在焦油的限制跑到這裏:http://en.wikipedia.org/wiki/Tar_(file_format)#Random_access

,因爲它是很難不復制整個檔案添加或刪除單個文件。

+0

我從文章的這部分的理解是,它實際上是很容易在單個文件添加到tar歸檔不復制它,你可以把它貼在年底不更新TOC。 – 2012-03-19 13:02:44

+0

爲什麼我需要隨機訪問,但如果我想要做的是追加(不關心內部文件的順序)? 另外,您會推薦我使用其他什麼格式? – user976850 2012-03-19 13:06:17

相關問題