import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.ArchiveInputStream;
import org.apache.commons.compress.archivers.ArchiveOutputStream;
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
import org.apache.commons.compress.changes.ChangeSet;
import org.apache.commons.compress.changes.ChangeSetPerformer;
public class Main {
public static void main(String[] args) throws Exception {
File archiveFile = new File(args[0]);
File addFile = new File(args[1]);
String archiverName = "zip";
File tempFile = File.createTempFile(archiveFile.getName(), ".tmp");
ArchiveStreamFactory asf = new ArchiveStreamFactory();
FileInputStream fis = new FileInputStream(archiveFile);
ArchiveInputStream ais = asf.createArchiveInputStream(archiverName, fis);
FileOutputStream fos = new FileOutputStream(tempFile);
ArchiveOutputStream aos = asf.createArchiveOutputStream(archiverName, fos);
FileInputStream addfis = new FileInputStream(addFile);
try {
ChangeSet cs = new ChangeSet();
ArchiveEntry entry = aos.createArchiveEntry(addFile, addFile.getName());
cs.add(entry, addfis, true);
ChangeSetPerformer performer = new ChangeSetPerformer(cs);
performer.perform(ais, aos);
} finally {
addfis.close();
ais.close();
aos.close();
fis.close();
fos.close();
}
archiveFile.delete();
tempFile.renameTo(archiveFile);
}
}
2009年6月5日
Apache Commons Compress Adds file to an existing Zip file
Apache Commons Compress
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言