Tach,
ich finde meinen Denkfehler nicht. Beim zweiten Durchgang fliegt mir die besagte IOException: Stream closed um die Ohren:
Selbst wenn ich die
bos.flush();
bos.close();
bis.close();
auskommentiere, bekomme ich den Fehler. Woran denke ich nicht?
ich finde meinen Denkfehler nicht. Beim zweiten Durchgang fliegt mir die besagte IOException: Stream closed um die Ohren:
Java:
public void extractArchiveInOneDirectory(File archiveFile, File destinationDirectory) throws Exception {
if (!destinationDirectory.exists()) {
destinationDirectory.mkdir();
}
ZipFile zipFile = new ZipFile(archiveFile);
Enumeration entries = zipFile.entries();
byte[] buffer = new byte[16384];
int len;
while (entries.hasMoreElements()) {
ZipEntry entry = (ZipEntry) entries.nextElement();
String entryFileName = entry.getName();
if (!entry.isDirectory()) {
// nur Dateiname, Pfad wegwerfen
boolean slashIndexFound = false;
int slashIndex = entryFileName.lastIndexOf("/");
if ( slashIndex == -1 ){
slashIndex = entryFileName.lastIndexOf("\");
if ( slashIndex != -1 )
slashIndexFound = true;
} else {
slashIndexFound = true;
}
if ( slashIndexFound ){
entryFileName = entryFileName.substring(slashIndex + 1, entryFileName.length());
slashIndexFound = false;
}
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(new File(destinationDirectory, entryFileName)));
BufferedInputStream bis = new BufferedInputStream(zipFile
.getInputStream(entry));
// HIER =================================
while ((len = bis.read(buffer)) > 0) {
bos.write(buffer, 0, len);
}
saveLogEntry("Extrahiere Datei " + entryFileName + " ins Verzeichnis " + destinationDirectory);
bos.flush();
bos.close();
bis.close();
}
}
zipFile.close();
}
bos.flush();
bos.close();
bis.close();
auskommentiere, bekomme ich den Fehler. Woran denke ich nicht?
Zuletzt bearbeitet von einem Moderator: