Zip Archiv erstellen

Status
Nicht offen für weitere Antworten.

search@info

Mitglied
Hallo Leute

Ich erstelle in einer Schleife jede Menge XML-Dateien. Diese Dateien will ich in ein Zip Archiv einfügen.
Kann mir jemand anhand eines Quelltextbeispieles zeigen, wie das geht?
 

Niki

Top Contributor
Ich hab da mal was geschrieben, man kann das Zippen auch abbrechen:
Code:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Zip {
	
	private boolean stop = false;
	
	public void zip(File[] files, File out) throws IOException {
		if(stop)
			return;
		FileOutputStream fos = null;

		ZipOutputStream zos = null;
		try {
			fos = new FileOutputStream(out);
			zos = new ZipOutputStream(fos);
			
			// 4k blöcke schreiben
			byte[] buf = new byte[1024 * 4];
			
			for (int i = 0; i < files.length; i++) {
				File f = files[i];
				if(stop)
					return;
				
				zos.putNextEntry(new ZipEntry(f.getName()));
				FileInputStream fis = new FileInputStream(f);
				int len = fis.read(buf);
				while(len > -1){
					zos.write(buf, 0, len);
					len = fis.read(buf);
				}				
				zos.closeEntry();
				fis.close();
			}		
		} finally {
			if(zos != null){
				zos.flush();
				zos.close();
			}
		}
	}
	
	public void stop(){
		stop = true;
	}
}
 

search@info

Mitglied
Danke für deine schnelle Antwort.
Habe ich das richtig verstanden, dass das File Array alle meine XML-Dateien enthält und diese dann zum Zip Archiv umgewandelt werden?
 

Cravi

Mitglied
Hallo zusammen,

hierzu hätte ich auch eine Frage. Unz zwar ist mir das schreiben der Zip Datei zwar klar nur habe ich dabei ein kleines Problem.

Ich habe 2 Dateien aus unterschiedlichen Ordnern die in eine Zip Datei sollen. Allerdings ohne die jeweilige Ordnerstruktur.
Denn mein Problem ist dass diese beim speichern immer mit dazu gepackt wird.
Laden tue ich die Dateien über einen FileChooser.

Wäre um Hilfe wirklich dankbar.

Viele Grüße
Cravi
 

Cravi

Mitglied
Ähm klar tu ich das...
mein Code sieht so aus


Code:
	private void save(File zipFile, String[]data)
	{
		try 
		{
	           ZipOutputStream zipOut  = new ZipOutputStream( new FileOutputStream(zipFile) ) ;

		   for(int i = 0; i < data.length; i++)
		   {
			   BufferedInputStream bis = new BufferedInputStream( new FileInputStream(f) );
			   int avail = bis.available();
			   byte[] buffer = new byte[avail] ;
			   if ( avail>0 )
			   {
			      bis.read(buffer, 0, avail) ;
			      bis.close();
			   }
			   ZipEntry ze = new ZipEntry(fileName); 
			   zipOut.putNextEntry(ze);
			   System.out.println(buffer);
			   zipOut.write(buffer, 0, buffer.length);
		   }
		   zipOut.closeEntry(); 
		   zipOut.close();

       ....................

Nur dass ich ja ein File aus dem FileChooser übergebe welches dann den Pfad /Users/Cravi/blubb.jpg besitzt.

Und wenn ich es so in das Zip speichern will dann erstellt er mir auch die 2 Ordner in der Zipdatei.

Oder kann ich dem ZipEntry sagen dass er keine Ordner mitübernimmt?

Sry stehe da echt ein bisschen auf dem Schlauch
 

Wildcard

Top Contributor
Es gibt keine Verzeichnisse in einem zip. Nur Entries. Ein Entry ist ein Name/Pfad + bytes. Es liegt an dir welchen Pfad du übergibst.
 

Cravi

Mitglied
das ist mir im prinzip schon klar.
Nur wenn ich die Datei von irgendwoher hole dann hat sie eben den kompletten Pfad an sich. Den kann ich ja auch nicht einfach löschen, da der Bytestrom ja wissen muss wo die Datei auf dem Rechner liegt und er sie somit einlesen kann.

Die einzige Möglichkeit die ich gefunden habe ist eine Kopie dieser Datei in mein Java Verzeichnis zu kopieren, so dass er den Standardpfad nehmen kann. Aber dass ist eben ein bisschen umständlich und ich habe gehofft dass es auch ohne diesen Umweg geht.

Sry wenn ich es nicht richtig schaffe mein Problem darzustellen.
 

Cravi

Mitglied
Oooohhh maaaaannnn,
Sonntags sollte man einfach nicht mehr arbeiten *g

Habe es jetzt hinbekommen. Habe die ganze Zeit etwas den Sinn des Entity nicht richtig verstanden. Dachte er brauch auch den kompletten Pfad der Datei. Aber im Endeffekt sagt er ja nur aus wie der Eintrag in der Zipdatei aussehen soll.

Jetzt verstehe ich auch was du meintest.
Danke auf jeden Fall für deine Hilfe ;-)

Viele Grüße
Cravi
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C JAr Archiv erstellen Java Basics - Anfänger-Themen 7
O datei erstellen in jar archiv? Java Basics - Anfänger-Themen 4
S JAR Archiv erstellen? Java Basics - Anfänger-Themen 7
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
G Jar-Archiv zum Lesen einer Konfigurationsdatei Java Basics - Anfänger-Themen 9
H Classpath VBScript in Jar-archiv ausführen Java Basics - Anfänger-Themen 2
P Input/Output String via Drag & Drop auf jar-Archiv Java Basics - Anfänger-Themen 2
H Java Archiv lässt sich nur pfadgebunden öffnen? Java Basics - Anfänger-Themen 26
A JUnit Tests in Jar-Archiv packen Java Basics - Anfänger-Themen 2
E Dateien in ein JAR-Archiv packen Java Basics - Anfänger-Themen 2
P Interpreter-Fehler jar Archiv wird nicht ausgeführt Java Basics - Anfänger-Themen 4
E Projekt als jar-Archiv speichern Java Basics - Anfänger-Themen 4
M Datei aus .jar Archiv ausführen Java Basics - Anfänger-Themen 4
R NoClassDefFoundError im *jar Archiv Java Basics - Anfänger-Themen 7
F JAR Archiv VM Argumente übergeben Java Basics - Anfänger-Themen 3
M Shellscript aus .jar archiv ausführen Java Basics - Anfänger-Themen 2
D Datei aus einem .jar Archiv aufrufen Java Basics - Anfänger-Themen 4
B jar Archiv anlegen Java Basics - Anfänger-Themen 2
N Ressourcendatei im Jar-Archiv Java Basics - Anfänger-Themen 2
G Applet als Jar-Archiv Java Basics - Anfänger-Themen 15
hdi bilder funktionieren im jar archiv nicht. Java Basics - Anfänger-Themen 3
G Bilder ins jar-Archiv einbinden Java Basics - Anfänger-Themen 1
O Jar-Archiv im Servlet verwenden Java Basics - Anfänger-Themen 3
G Jar archiv Pfadangabe! Java Basics - Anfänger-Themen 5
G leere Ordner befinden sich nicht im Zip-Archiv Java Basics - Anfänger-Themen 8
P Images im Archiv .jar Java Basics - Anfänger-Themen 9
N Datei aus Jar Archiv abspeichern Java Basics - Anfänger-Themen 2
X Datei in einem Archiv ersetzen Java Basics - Anfänger-Themen 4
M eine *.gif datei zum jar archiv hinzufügen Java Basics - Anfänger-Themen 3
O Existenz einer Datei im jar-Archiv überprüfen Java Basics - Anfänger-Themen 2
G pdf Dokument aus .jar Archiv Java Basics - Anfänger-Themen 8
S Classloader JAR Archiv Java Basics - Anfänger-Themen 3
G Jar Archiv Java Basics - Anfänger-Themen 3
H Jar-Archiv aus anderem Jar-Archiv aufrufen? Java Basics - Anfänger-Themen 3
J relativer Pfad in jar-Archiv Java Basics - Anfänger-Themen 5
Z Jar-Archiv Classpath Variable Java Basics - Anfänger-Themen 6
G Frage zu zip-Archiv Java Basics - Anfänger-Themen 2
G Wie generiere ich zu diesem Code ein *.jar-Archiv Java Basics - Anfänger-Themen 6
A Programm findet keine wav-Dateien im jar Archiv Java Basics - Anfänger-Themen 4
A JPEG mit ins JAR-Archiv Java Basics - Anfänger-Themen 3
L jar archiv Java Basics - Anfänger-Themen 5
A .class Datein, jar Archiv ? Java Basics - Anfänger-Themen 2
E ausführbares jar-archiv funktioniert nicht Java Basics - Anfänger-Themen 2
M Trace Tabelle erstellen Java Basics - Anfänger-Themen 21
J JButton ArrayList erstellen und auf JLabel ausgeben. Java Basics - Anfänger-Themen 9
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S Programm erstellen Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
T Countdown erstellen Java Basics - Anfänger-Themen 7
I ZIP File erstellen Java Basics - Anfänger-Themen 10
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
B JaxB - Referenzen erstellen? Java Basics - Anfänger-Themen 2
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
E Classpath Datai erstellen Java Basics - Anfänger-Themen 3
B eine methode erstellen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben