2012-03-19 80 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

相关问题