Input/Output Property-Datei aus einer Zip lesen in in einer anderen Zip-Datei ist

euko

Neues Mitglied
Hallo,

sorry für die Anfängerfrage, aber habe keine Antwort bisher gefunden:

Ich muss eine Property-Datei lesen die in einer Zip-Datei gespeichert ist. Die Zip ist wiederum in einer weiteren Zip-Datei enthalten.

Im unteren Code habe ich mich bereits zur inneren Zip vorgearbeitet und finde auch die Property-Datei darin - kann aber die werte noch nicht lesen.

Das Lesen der Property werte funktioniert bisher nur, wenn die Property Datei in der eußeren Zip liegt. :bahnhof:

Java:
public void readPropertyFileFromArchive(String zipFilePath)
	{
		ZipFile zipFile = null;
		try{
		
			zipFile = new ZipFile(zipFilePath);
			Enumeration<? extends ZipEntry> zipEntries = zipFile.entries();
			
			// ZIP Datei durchsuchen
			while(zipEntries.hasMoreElements())
			{
				ZipEntry zipEntry = zipEntries.nextElement();
				
				String lowerCaseName = zipEntry.getName().toLowerCase();
				if (lowerCaseName.contains( configHMap.get("PropertyFile").toLowerCase() ))
				{
				// Properties gefundener Datei einlesen
					InputStream is = zipFile.getInputStream(zipEntry);
					Properties properties = new Properties();
					properties.load(is);
	
					for (String key : properties.stringPropertyNames()) 
					{
						String value = properties.getProperty(key);
						this.propHMap.put(key, value);
					}
				}
	
				
				
		// Durchsucht ein gefundenes Archiv im aktuellem Archiv //		
				if( lowerCaseName.endsWith(".ear") || lowerCaseName.endsWith(".war") || lowerCaseName.endsWith(".jar") )
				{
					//readInnerZipFile(zipFile, zipEntry.getName());
					InputStream innerZipStream = zipFile.getInputStream(zipEntry);

					
					
			//>>>> new innerZipFile
					ZipInputStream zis = new ZipInputStream(innerZipStream);
					
					ZipEntry entry = zis.getNextEntry();
					while (entry != null ) {
					    
					    lowerCaseName = entry.getName().toLowerCase();
						if (lowerCaseName.contains( configHMap.get("PropertyFile").toLowerCase() ))
						{
						// Properties gefundener Datei einlesen
							
		
//////>>>>> folgend ist der fehler:

  InputStream is =  zis.getInputStream(entry);
//////>>>>> 
							Properties properties = new Properties();
							properties.load(is);
//
							for (String key : properties.stringPropertyNames()) 
							{
								String value = properties.getProperty(key);
								this.propHMap.put(key, value);
										//System.out.println("++ key: "+key +", value:"+properties.getProperty(key));
							}
						}
						
					entry = zis.getNextEntry();
					}
				}
				
				
				
			}
			
		}catch(Exception e){
			
		}finally{
			if (zipFile != null)
				zipFile.close();
		}
	}
 

knilch

Bekanntes Mitglied
Hi,
Hier mal ein Beispiel:
Die Datei: config.properties liegt innerhalb von config.zip, welche sich wieder in config_2.zip befindet:
Java:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class Test {

    private static String file = "config.properties";
    private static String zipString = "config_2.zip";


    public static void main(String[] args) {    
        readZipFile(zipString);
    }

    private static void readZipFile(String file)  {
        ZipFile zipFile;
        ZipFile innerZip;

        ZipEntry entry;
        ZipEntry entry2;

        InputStream is = null;

        try {
            zipFile = new ZipFile(file);
            Enumeration<? extends ZipEntry> entries = zipFile.entries();

            while(entries.hasMoreElements()) {
                entry = entries.nextElement();    
                if(entry.getName().endsWith("zip")) {                    
                    innerZip = new ZipFile(entry.getName());
                    Enumeration<? extends ZipEntry> entries2 = innerZip.entries();    
                    while(entries2.hasMoreElements()) {
                        entry2 = entries2.nextElement();                        
                        if(entry2.getName().equals("config.properties")) {
                            is = innerZip.getInputStream(entry2);
                            Properties properties = new Properties();
                            properties.load(is);
                            System.out.println(entry2.getName() + " gefunden in " + innerZip.getName() + " innerhalb von: " + zipFile.getName());
                            System.out.println(properties.getProperty("database"));
                            System.out.println(properties.getProperty("dbuser"));
                            System.out.println(properties.getProperty("dbpassword"));
                        }
                    }
                } else if(entry.getName().equals("config.properties")){
                    is = zipFile.getInputStream(entry);
                    Properties properties = new Properties();
                    properties.load(is);
                    System.out.println(entry + " gefunden in " + zipFile.getName());
                    System.out.println(properties.getProperty("database"));
                    System.out.println(properties.getProperty("dbuser"));
                    System.out.println(properties.getProperty("dbpassword"));
                }    
                else {
                    System.out.println("Keine Datei gefunden.....");
                }
            }

        } catch (IOException ex) {
            System.err.println(ex.getMessage());
        }                
        finally {
            if(is != null) {
                try {
                    is.close();
                } catch (IOException ex) {
                    System.err.println(ex.getMessage());
                }
            }
        }
    }
}
Ausgabe:
Code:
config.properties gefunden in config.zip innerhalb von: config_2.zip
localhost
user
password
 
Zuletzt bearbeitet:

euko

Neues Mitglied
innerZip = new ZipFile(entry.getName());

an der Stelle erhalte ich den folgenden fehler:

„earMms.zip (Das System kann die angegebene Datei nicht finden)“


Die äußere zip ist in "C:\tmp\BmoZIP.zip" und darin ist die "earMms.zip"


Habe auch folgendes probiert, wird aber auch nicht gefunden:
innerZip = new ZipFile("C:/tmp/BmoZIP.zip/earMms.zip");



deshalb hatte ich das ursprünglich auch so gemacht, damit die innere zip gelesen wird:
InputStream innerZipStream = zipFile.getInputStream(zipEntry);
 
Zuletzt bearbeitet:

Dompteur

Top Contributor
Der Konstruktor ZipFile(String s) erwartet einen Filenamen aus dem Filesystem.
Du rufst es aber mit dem Namen von einem "ZipEntry" Objekt.

Du hast zumindest 2 Möglichkeiten:
  • Du dekomprimierst den Eintrag in ein temporäres File und arbeitest mit dem Filenamen weiter
  • Du liest den Eintrag in ein Bytearray und verwendest die ZipInputStream Klasse um an den Inhalt zu kommen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A HTML-Code auslesen und mit einem Wert in der property-Datei vergleichen Java Basics - Anfänger-Themen 2
M property-Datei: key mit Leerzeichen? Java Basics - Anfänger-Themen 3
G JAR erzeugen (Property-Datei soll draußen bleiben) Java Basics - Anfänger-Themen 2
G Property-Datei mit Eclipse erzeugen Java Basics - Anfänger-Themen 1
G Property Datei laden Java Basics - Anfänger-Themen 9
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
B Zu Property Feld weitere Informationen hinzufügen? Java Basics - Anfänger-Themen 4
B JaxB - Property vom Typ Object und LocalDateTime speichern? Java Basics - Anfänger-Themen 0
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
M System.property persistieren Java Basics - Anfänger-Themen 6
B Get property field von Name Java Basics - Anfänger-Themen 9
Meeresgott OOP Richtig mit java.util.Property umgehen Java Basics - Anfänger-Themen 22
J Open Office Property Value mit Java aufrufen Java Basics - Anfänger-Themen 0
K Classpath Lesen von Property-File Java Basics - Anfänger-Themen 1
R Property Value als null setzen Java Basics - Anfänger-Themen 1
F Property speichrn funktioniert nicht Java Basics - Anfänger-Themen 4
D Property File einlesen Java Basics - Anfänger-Themen 6
M property mit mehreren werten Java Basics - Anfänger-Themen 3
M System Property Java Basics - Anfänger-Themen 2
M eigene Property-Klasse Java Basics - Anfänger-Themen 2
G [Hibernate] Could not find a setter for property Java Basics - Anfänger-Themen 2
C Property ersetzen Java Basics - Anfänger-Themen 13
S Property-Problem Java Basics - Anfänger-Themen 8
X Property user.name über Konsole verändern Java Basics - Anfänger-Themen 6
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
W Fehler in der Datei pom.xml Java Basics - Anfänger-Themen 19
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
B von Java/Eclipse verwendete Datei existiert gar nicht? Java Basics - Anfänger-Themen 6
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
B Popups mit Klicksabfangen zumAusfüllen einer .ods Datei Java Basics - Anfänger-Themen 0
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
A CSV-Datei Verarbeiten Java Basics - Anfänger-Themen 8
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
S In Datei schreiben in Java? Java Basics - Anfänger-Themen 1
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
sserio Txt Datei einlesen Java Basics - Anfänger-Themen 9
T Printwriter Datei nicht überschreiben Java Basics - Anfänger-Themen 10
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
M Text in Datei schreiben Java Basics - Anfänger-Themen 9
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
J int innerhalb einer Datei ändern Java Basics - Anfänger-Themen 1
T208 Text Datei individuell benennen. Java Basics - Anfänger-Themen 5
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
E extern Datei von meinem Computer aufmachen Java Basics - Anfänger-Themen 5
H Scripte oder Programmcode aus Datei lesen? Java Basics - Anfänger-Themen 5
E PDF Datei im xfdf-Datei umwandeln und auf dem Laufwerk ablegen Java Basics - Anfänger-Themen 0
J CSV-Datei verarbeiten Java Basics - Anfänger-Themen 27
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
nbergmann Installation unter jdk.java.net: Keine ZIP-Datei zum entpacken Java Basics - Anfänger-Themen 2
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
EchtKeineAhnungManchmal Controller aus FXML Datei entfernen Java Basics - Anfänger-Themen 49
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
Kotelettklopfer Sqlite DB aus Java Datei ansprechen. Java Basics - Anfänger-Themen 147
C XML Datei speichern und laden Java Basics - Anfänger-Themen 18
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
C XML Datei schreiben Java Basics - Anfänger-Themen 14
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
L Java erstellt leere Datei Java Basics - Anfänger-Themen 8
J Json Datei auslesen Java Basics - Anfänger-Themen 4
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
I JAX-WS.... Datei ".ical" zurückgeben.... Wie annotieren? Java Basics - Anfänger-Themen 1
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
E Pfadangaben bei Ausführbarer Jar Datei Java Basics - Anfänger-Themen 8
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
I Datei als Stream aus Ressource laden? Java Basics - Anfänger-Themen 2
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
R Wie installiere ich Jdownloadersetup.sh datei mit debian Java Basics - Anfänger-Themen 2
J Csv-Datei einlesen Java Basics - Anfänger-Themen 52
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
W Java in Exe Datei umgewandelt, Ressourcen fehlen (Bilder und Audiodateien) Java Basics - Anfänger-Themen 1
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben