Wie bereits erwähnt, können Sie mit der Klasse ZipOutputStream
eine ZIP-Datei erstellen. Der Trick, mehrere Dateien in einer einzigen ZIP-Datei zu speichern, besteht darin, vor dem Schreiben (Marshalling) der JAXB-XML-Daten in ZipEntry
die ZipOutputStream
-Deskriptoren zu verwenden. Ihr Code könnte also ähnlich aussehen wie dieser:
Der "richtige" Weg - ohne die Verwendung einer Drittanbieter-Bibliothek - wäre java.util.zip.ZipOutputStream
.
Persönlich bevorzuge ich jedoch TrueZip .
TrueZIP ist ein Java-basiertes Plug-In-Framework für virtuelle Dateisysteme (VFS), das einen transparenten Zugriff auf Archivdateien bietet, als wären sie reine Verzeichnisse.
Ich weiß nicht, was JAXB mit irgendetwas zu tun hat, noch mit XML - Dateiinhalte sind Dateiinhalte. Ihre Frage ist wirklich "Wie kann ich Zeichen direkt in ein Zip-Archiv ausgeben"
Öffnen Sie dazu ZipOutputStream und verwenden Sie die API, um Einträge zu erstellen und dann Inhalte für jeden Eintrag zu schreiben. Denken Sie daran, dass ein Zip-Archiv wie eine Reihe von benannten Dateien innerhalb des Archivs ist.
btw, ZipOututStream
ist Teil des JDK (dh es ist keine "Bibliothek")