FileOutputStream File ist immer noch geöffnet (trotz .close())

Stefan852

Grünschnabel
Hallo

Ich schreibe mit einem FileOutputStream eine Datei wenn ich fertig bin rufe ich die close() Methode auf, allerdings ist das File immer noch in der JavaPlatform geöffnet daher kann ich es nicht löschen/verschieben/verändern bis ich mein Programm beende.

Wie kann ich dieses Problem lösen?

LG
Stefan
 
Hi

falls es Streams gibt, die auf dem Genannten aufbauen (zB. BufferedWriter):
Schließt du die alle, in richtiger Reihenfolge (umgekehrt zum Öffnen)?

Welches Betriebsystem?

Und diesmal hätt ich gern bitte etwas Code zum drüberschauen :)
Fehler liegen eher im eigenen Programm als in der VM...
 
Hey

Das ist der Code:
Java:
  BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(output)); //Erstellen des Streams als lokale Variable
  //Berechnungen und schreiben über bos.write(buf); buf ist vom Typ byte[]
  bos.close();

Liegt das Problem am anonymen FileOutputStream?
Soll ich ihn einer Variable zuweisen und seperat schließen?

Betriebssystem: Win8, Auf Linux hab ichs noch nicht getestet.

LG,
Stefan

EDIT: Nach der Variablenzuweiseung und expliziten schließen des FileOutputStreams funktioniert es.
 
Zuletzt bearbeitet:
Zurück