danke für den Hinweis.
Es folgen ein paar altkluge Bemerkungen.
.close() ist definitiv kein Spass-Thema für alle Sorten von Streams und Connections (RDBMS, JMS, files, was auch immer).
Ausserdem hat das ein paar Haken.
try {
// fis öffnen
// do stuff
// wird fis geschlossen, wenn hier eine exception geworfen wird? NEIN! fis.close wird dann nicht erreicht.
fis.close();
fis = null;
} catch (ANeededException) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch {}
}
}
Die Verbindung von Exception-Catching und closen von Streams/Connections kann zu wirklich stark verschachtelten code führen, wenn man robusten code schreiben will (was Sinn macht).
Moderne Frameworks kümmern sich oft darum, was sehr gut ist.
Noch was:
Solltest du FileInputStream direkt verwenden, wrap das in einen BufferedInputStream, so nach der Art:
BufferedInputStream buf = new BufferedInputStream(new FileInputStream(stuff));
Das bringt oft sehr merkbare Performancesteigerungen.
Gruß Axel