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:
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();
}
}