Hallo,
ich hab ein kleines Problem an dem ich nicht weiterkomme. Also ich mache nichts anderes als ganz viele Dateien zur Erzeugen und dort einen kleinen String reinzuschreiben, der auch immer gleich lang ist.
Hier der Programmausschnitt:
for(int i=0;i<anzahl;i++){
String mrn=new_mrn.getMrn(applikation.name.getText());
FileWriter fos3 = new FileWriter(applikation.panel3_auftrag.getText()+"/Auftrag_Simu3_"+mrn+".aut");
fos3.write(mrn);
fos3.close();
}
Das ganze funktioniert soweit, nur ich benutzte, je mehr Dateien ich erzeuge, immer mehr Arbeitsspeicher was ich im Task-Manager beobachten kann.
Kommentiere ich aber den Befehl fos3.write(); raus, bleibt die Speichernutzung konstant. Mir kommt es so vor als würde ich in den RAM schreiben mit dem Befehl write(), aber das mache ich ja nicht, in den Dateien ist ja auch der String. Das Problem ist ich darf den Arbeitsspeicher nicht so in anspruch nehmen.
Ich hab das mal getestet bei 10000 durchläufen ohne fos3.write(); da brauchte ich ca. 1500 KB RAM und das bleibt auch die ganze Zeit konstant, mit dem Befehl fos3.write(); allerdings brauchte ich ca. 13000 KB RAM, und je mehr druchläufe ich mach desto grösser wird der.
Die Datei erzeuge ich ja mit dem FileWriter auch ohne das write, damit schreibe ich ja nur den String rein.
Mache ich da was falsch oder muss ich das irgendwie anders machen?
Danke und Gruß,
Chriz