Как добавить файлы в архив .tar на Java? - PullRequest
1 голос
/ 19 марта 2012

Я хотел бы создать архив tar на Java.У меня есть файлы, которые постоянно создаются, и я хотел бы, чтобы рабочий поток взял ссылку на эти файлы из очереди и скопировал их в архив.

Я попытался использовать TarArchiveOutputStream библиотеки Apache Compression, чтобы сделать это,но я не хочу, чтобы архив оставался открытым в течение всей продолжительности программы (поскольку, если я не завершу работу с архивом, он может испортиться, поэтому я бы предпочел добавлять его в пакетном режиме), и я не нашел хорошегоспособ добавления к существующему архиву tar со своей библиотекой (у них есть класс «ChangeSetPerformer», но он в основном просто создает новый tar и должен полностью копировать старый, что не очень хорошо для меня, с точки зрения производительности).

Мне также нужно, чтобы в библиотеке не было нижнего предела для размера архива (т.е. 4 г или около того недостаточно), и я бы предпочел избежать фактического сжатия архива.

Любые предложения будут с благодарностью!спасибо.

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Вы запускаете здесь с ограничением tar: http://en.wikipedia.org/wiki/Tar_(file_format)#Random_access

из-за этого трудно добавлять или удалять отдельные файлы без копирования всего архива.

0 голосов
/ 19 марта 2012

Я использую библиотеку под названием Java Tar: http://www.trustice.com/java/tar/

Это сработало для меня. В этом пакете ищите:

http://www.gjt.org/javadoc/com/ice/tar/TarArchive.html#writeEntry(com.ice.tar.TarEntry, логический)

Что позволяет добавить запись в файл без использования потока на уровне пользователя. Я не знаю о размере файла - но было бы просто проверить этот аспект.

...