# Datei aus zip öffnen ohne zip zu entpacken



## speirs (19. Nov 2011)

Hallo Leute,

ich habe ein Problem mit einem zip Zugriff.

Für eine Simulation einer Datenübertragung (Details erspare ich euch), muss ich auf gewisse Dateien zugreifen bzw. öffnen können. Ich öffne z.B. HTML Seiten mit dem folgenden Code:


```
Desktop.getDesktop().open(new File("Mein Pfad"));
```

Das Funktioniert alles wunderbar. Es wird der Standard HTML Browser geöffnet und reicht erst mal  vollkommen aus.

Nur stehe ich jetzt vor dem Problem, dass auch HTML Seiten mit verlinkten Bildern berücksichtigt werden sollen. Deshalb packe ich zusammenhängende Dateien (HTML Seite + .jpg) in ein .zip Archiv. Der Kompressionsgrad ist 0%, ich nutze das .zip einfach als einen Container.
Nun möchte ich einfach die HTML Seite im .zip öffnen OHNE das .zip vorher zu entpacken.

Ich komme mit ZipEntry nicht wirklich weiter. Zwar kann ich mir den Inhalt des .zip anzeigen lassen, die Dateigröße und auch den Kompressionsgrad, aber ich möchte einfach nur die gewünschte HTML öffnen.

Meine Versuche


```
Desktop.getDesktop().open(new File("Mein Pfad"));
```
 mit 
	
	
	
	





```
zipEntry.getName();
```

zu kombinieren sing kläglich gescheitert.

Scheinbar gibt es ne Möglichkeit mit BufferedOutputStream zu arbeiten, aber das habe ich leider nicht verstanden. Gibt es keine Möglichkeit einfach die Datei zu öffnen???

Besten Dank für eure Zeit und bitte seht es mit nach, falls ich mir die Geschichte mit "einfach öffnen" zu einfach vorstelle.......


----------



## bERt0r (20. Nov 2011)

Wenn du dir das so vorstellst wie in diversen Zip tools, wo du ein Archiv aufmachst und dann per doppelklick irgendwelche dateien aufrufst muss ich dich enttäuschen: das Programm packt die sachen erst aus und dann ruft es die ausgepackte Datei auf. Besonders wenn du diese Dateien dann noch von Drittprogrammen aufmachen lassen willst wirst du keine andere Möglichkeit haben.


----------



## speirs (20. Nov 2011)

Hi,

vielen Dank für deine Antwort. Du hast es auf den Punkt gebracht. Genauso habe ich mir das vorgestellt.  Ich konnte mir schon denken, dass ich es mir zu einfach mache. Ich arbeite nun mit BufferedOutputStream, d.h. ich mache erste Versuche......

have a nice sunday......


thx


----------



## Guybrush Threepwood (20. Nov 2011)

Du kannst HTML aus Jar-Dateien direkt über die passende URL abfragen und in Deinem Programm anzeigen lassen (z. B. in einer JEditorPane). Die URL erhälst Du über über irgend etwas wie z. B.

```
"jar:file:zipDatei.zip!/anzeigetext.html"
```

Daneben kannst Du mit TruZip die Inhalte eines ZIP-Archivs wie ein normales File-System lesen, ab Java 7 geht das alles auch mit bordeigenen Mitteln. Wenn Du über Desktop die Datei in einem externen Programm anzeigen lässt, dann wird Dir nichts anderes übrig bleiben, als die Datei erst zu entpacken und dann aufzurufen, wobei Du besser die Methode browse nimmst. Du weißt ja nicht, mit welchem Programm die Dateiendung .html bei User registriert ist.


----------



## Dow Jones (20. Nov 2011)

speirs hat gesagt.:


> Deshalb packe ich zusammenhängende Dateien (HTML Seite + .jpg) in ein .zip Archiv. Der Kompressionsgrad ist 0%, ich nutze das .zip einfach als einen Container.



Wäre MHTML eine Alternative als Containerformat? Das sollten die Browser eigentlich kennen (und anzeigen können), und JavaMail scheint Methoden zur Handhabung dieses Formats zu beinhalten. 
MHTML - Wikipedia, the free encyclopedia
Constructing MHTML files in Java using JavaMail api


----------

