mOSSpOWER Geschrieben 23. Januar 2006 Geschrieben 23. Januar 2006 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 Zitieren
bigredeyes Geschrieben 23. Januar 2006 Geschrieben 23. Januar 2006 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 Zitieren
kingofbrain Geschrieben 23. Januar 2006 Geschrieben 23. Januar 2006 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 Zitieren
mOSSpOWER Geschrieben 23. Januar 2006 Autor Geschrieben 23. Januar 2006 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 Zitieren
bigredeyes Geschrieben 23. Januar 2006 Geschrieben 23. Januar 2006 ... ... weiß aber nicht ob nicht mit herkömmlicher Pfadangabe drauf zugegriffen werden kann ... denke aber eher nicht wieso sollte das nicht gehen? bigredeyes Zitieren
mOSSpOWER Geschrieben 23. Januar 2006 Autor Geschrieben 23. Januar 2006 Du bist wizig ... 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 Zitieren
_Arvid_ Geschrieben 23. Januar 2006 Geschrieben 23. Januar 2006 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. Zitieren
mOSSpOWER Geschrieben 23. Januar 2006 Autor Geschrieben 23. Januar 2006 @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 Zitieren
mOSSpOWER Geschrieben 24. Januar 2006 Autor Geschrieben 24. Januar 2006 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.