2012-03-19 3 views
1

Java로 tar 아카이브를 만들고 싶습니다. 끊임없이 생성되는 파일이 있고 작업자 스레드가 큐에서 해당 파일에 대한 참조를 가져 와서 아카이브로 복사하려고합니다.Java에서 .tar 아카이브에 파일을 어떻게 추가합니까?

아파치 압축 라이브러리의 TarArchiveOutputStream을 사용하여 시도했지만 프로그램을 완전히 열어 두지 않으려합니다. (아카이브를 완료하지 않으면 손상 될 수 있습니다. 일괄 처리로 추가), 라이브러리가있는 기존 tar 아카이브에 추가하는 좋은 방법을 찾지 못했습니다 ("ChangeSetPerformer"클래스가 있지만 기본적으로 새로운 tar를 생성하고 이전 tar를 복사해야합니다. 하나는 전적으로 좋지 않은, 성능 현명한).

라이브러리의 크기에 제한이 없어야합니다 (예 : 4g 정도면 충분하지 않음). 실제로 아카이브를 압축하지 않아도됩니다.

의견을 보내 주시면 대단히 감사하겠습니다. 감사합니다. 그것은 나를 위해 일한 것 http://www.trustice.com/java/tar/

:

답변

2

당신은 타르의 제한 여기에 실행 : http://en.wikipedia.org/wiki/Tar_(file_format)#Random_access 때문에 전체 아카이브를 복사하지 않고 하나의 파일을 추가하거나 제거하기 어렵다고의

.

+0

기사의 해당 섹션에서 필자는 TOC를 업데이트하지 않고 마지막에 막대기를 붙일 수 있으므로 실제로 복사하지 않고 단일 파일을 tar 아카이브에 추가하는 것이 쉽다는 것을 알고 있습니다. –

+0

왜 내가 랜덤 액세스가 필요한가요? 내가하고 싶은 일은 파일의 순서를 신경 쓰지 않고 추가하는 것뿐입니다. 또한 대신 다른 형식을 권하고 싶습니다. – user976850

관련 문제