Veröffentlicht 21. März 200223 j hi, ich habe ein kleines problem. ich lese mit einem programm eine datei ein und bearbeite sie dann weiter. wenn ich dies mit verschiedenen dateien mehrmals mache bekomme ich einen java.lang.OutOfMemoryError. kann man in java alte nicht mehr gebrauchte objekte "von hand" zur laufzeit löschen und so deren speicherplatz wieder freigeben? mfg trc
21. März 200223 j Hallo, beendest du die einzelnen Streams? Beispiel: ------------------------------------------- ObjectOutputStream os = new ObjectOutputStream (new FileOutputStream(FILENAME)); os.writeObject(v); os.close(); ------------------------------------------- Gruß Jaraz
21. März 200223 j ja, ich habe einen DataOutputStream und den schließe ich nach dem schreiben mit close().
21. März 200223 j In was für ein Objekt liest du denn die Dateien ein? Liest du jede Datei in ein neues Objekt ein, oder verwendest du immer das gleiche? Wie groß sind die Dateien, die du einliest. Am besten, du postest mal ein bisschen von deinem Code. Dann muss man nicht so im dunklen tasten...... Snowghost
24. März 200223 j Du kannst die Virtual Machine auch explizit dazu bewegen, den Garbage Collector zu starten, der im Speicher aufräumt. Allerdings funktioniert das wohl nciht 100%ig, aber versuchen kannst du's ja mal: System.gc(); Gruß, Löti.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.