Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

File in zip-File lesen

Empfohlene Antworten

Veröffentlicht

Hallo "Freunde",

heute wieder kleines Problem. Wie kann ich eine Datei lesen mit Java, die sich in einem zip-Format befindet? ... Wie ist der Pfad? ... Ausgangslage ->

Ich versuche die Datei icc.conf mittels Pfad

C:/Program Files/jboss/jboss-4.0.3SP1/server/default/deploy/ticr.ear/conf/icc.conf

zu lesen ... aber diesen Pfad gibt es nicht ... wie kann ich drauf zugreifen? ... brauche den absolut, also nicht relativ .. .hat jemand eine Idee oder schon diesbezüglich Erfahrungen gemacht?

Gruß

Holger

C:/Program Files/jboss/jboss-4.0.3SP1/server/default/deploy/ticr.ear/conf/icc.conf

nicht die ganze welt ist http://....

new java.util.zip.ZipFile("c:\\Program Files\\jboss\\jboss-4.0.3SP1\\server\\default\\deploy\\ticr.ear\\conf\\icc.conf

")

@kob: jo, seh ich auch gerade, er hat ja was gezipptes

Wahrscheinlich ist das Problem nicht bei den Slashes zu suchen, sondern dabei, das das .ear ein gezipptes Archiv ist, oder?

Schau Dir mal das Package java.util.zip an, da sollte alles zu finden sein, was Du suchst.

Oder Du deployst als exploded archive, dann hast Du normale Verzeichnisse.

Peter

Jo, mein Problem ist, dass sich die Config-Datei in einem ear-File befindet. Ich kenne das Package ZipFile ... weiß aber nicht ob nicht mit herkömmlicher Pfadangabe drauf zugegriffen werden kann ... denke aber eher nicht ... nun ... dann schaue ich mal, wie ich es mache ... eigentlich sollte man die da raus nehmen :) ... danke für eure Vorschläge

... ... weiß aber nicht ob nicht mit herkömmlicher Pfadangabe drauf zugegriffen werden kann ... denke aber eher nicht

wieso sollte das nicht gehen?

bigredeyes

Du bist wizig :D ... genau das ist doch mein Problem ... ich starte JBoss und das root-Verzeichnis ist /bin ... wenn ich jetzt im ear-File auf anderes File im ear-File zugreifen möchte ... wie mache ich das denn, relativ oder absolut ist egal .... der absolute Pfad ist ... siehe oben ... der relative Pfad wäre /conf/icc.conf .... wie kann ich das denn machen ... sollte aber doch gehen, denn bei einem WAR-File geht es doch auch (nur dass TOMCAT immer das WAR-File auspackt ... dann macht die Pfadangabe ja auch Sinn) ... ich jedenfalls habe bis jetzt keinen "Blassen".

Gruß

Holger

Da die Klasse ZipFile als Parameter im Konstruktor ein File-Objekt erhalten kann, wirst du (klugerweise) selbiges erstmal instantiieren. Hierbei ist es so ziemlich egal, ob relative oder absolute Pfadangabe der Datei.

Anschließend übergibst du das File-Objekt beim Instantiieren dem ZipFile-Objekt.

könnte etwa so aussehen:

// ...

File deineEarDatei = new File("/conf/icc.conf");

ZipFile deineEarDateiAlsZip = new ZipFile(deineEarDatei);

// ...
Und schon fertig. Eigentlich kein Problem, oder? Um nun mit allen Dateien und Verzeichnissen, die sich in dem ZipFile befinden, arbeiten zu können, musst du die Einträge noch aus dem ZipFile "raus holen":
/ ...

Enumeration inhaltDeinerZipDatei = deineEarDateiAlsZip.entries();

// und nun mit dem Enumeration-Objekt weiter arbeiten ...

Kleiner Tipp am Rande: In der Java API Doc (einem Java-Entwickler sollte es die heiligste aller Schriften sein) stehen oft hilfreiche -mal ganz salopp ausgedrückt- "Dingens". Also mein ehrlicher Rat: Immer erst die API Doc lesen! Echt wichtig!

Hoffe das ist das, was grad dein Problem ist.

@ar.sch.de

danke für den Tip mit der API, aber darum geht es mir nicht ... ich weiß doch, dass es das Package gibt, meine Ausgangsfrage war nur ob man das vermeiden kann und "herkömmlich" drauf zugreifen kann ... vielleicht geht es auch mit ClassLoader.getResource("conf/icc.conf"); ... ich wollte hier nur mal nachfragen, nicht dass ich hier das Package verwende und es dann wesentlich einfacher geht ... in der Regel schaue ich schon vorher in die API.

Gruß

Holger

Moin "Freunde",

es gibt doch eine andere Möglichkeit ... wer hartnäckig ist :) ... ich habe es so gelöst:

URL url = ICC.class.getClassLoader().getResource("conf/icc.conf"); ... jetzt kann ich mit dem Stream (url.openStream()) ganz normal damit arbeiten und brauche nicht das Zip-Package zu benutzen ... danke nochmals für Eure Ratschläge.

Gruß

Holger

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.