Wie schreibe ich XML-Dateien direkt in ein Zip-Archiv?

8

Was ist der richtige Weg, um eine Liste von XML-Dateien mit JAXB direkt in ein Zip-Archiv zu schreiben, ohne eine Bibliothek eines Drittanbieters zu verwenden.

Wäre es besser, einfach alle XML-Dateien in ein Verzeichnis zu schreiben und dann zu zippen?

    
kdgwill 20.08.2011, 03:25
quelle

3 Antworten

10

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:

%Vor%     
Jiri Patera 20.08.2011, 12:05
quelle
3

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.

    
Matt Ball 20.08.2011 03:33
quelle
1

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")

    
Bohemian 20.08.2011 03:32
quelle

Tags und Links