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
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
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().
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
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden