trc Geschrieben 21. März 2002 Geschrieben 21. März 2002 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 Zitieren
Jaraz Geschrieben 21. März 2002 Geschrieben 21. März 2002 Hallo, beendest du die einzelnen Streams? Beispiel: ------------------------------------------- ObjectOutputStream os = new ObjectOutputStream (new FileOutputStream(FILENAME)); os.writeObject(v); os.close(); ------------------------------------------- Gruß Jaraz Zitieren
trc Geschrieben 21. März 2002 Autor Geschrieben 21. März 2002 ja, ich habe einen DataOutputStream und den schließe ich nach dem schreiben mit close(). Zitieren
Snowghost Geschrieben 21. März 2002 Geschrieben 21. März 2002 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 Zitieren
loeti Geschrieben 24. März 2002 Geschrieben 24. März 2002 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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.