2016-08-08 11 views
0
int it_number = 1; 
public void write() throws IOException { 
     StringBuffer sb = new StringBuffer(name); 
     sb.append(it_number); 
     System.out.println(sb); 
     it_number++; 


     File file = new File(sb + ".txt"); 
     file.createNewFile(); 
     FileWriter writer = new FileWriter(file); 




     writer.write(results[0] + " " + results[1] + " " + velocity + "\n" ); 


    writer.flush(); 
    writer.close(); 

    } 
} 

inkrementieren Der String 'Name' ist eine Benutzereingabe. Und die Iterationsnummer 'it_number' soll jedes Mal inkrementieren, wenn derselbe Benutzer dasselbe mit demselben wiederholt, damit ich ein paar verschiedene Dateien mit dem gleichen Namen habe. Aber das überschreibt die Datei immer wieder neu. Was kann ich tun, um jede Iteration anders zu machen?Ich versuche, einen Dateinamen mit Variablen zu speichern, die

+0

Können Sie uns den Code mitteilen, der die Iteration ausführt? (eine For-Schleife vielleicht?) – GuiSim

+0

Sie müssen die Dateinummer in einer anderen Datei speichern. Sie lesen die andere Datei, erhöhen den Wert um 1 und schreiben den neuen Wert in die Datei. Ansonsten, so wie Ihr Code geschrieben ist, werden Sie jedes Mal, wenn Sie Ihren Code ausführen, die Datei 1 erstellen. –

+0

Ja, aber ich brauche die Nummer im Dateinamen zu erhöhen nicht in der Datei – msd

Antwort

1

Versuchen:

static int it_number = 1;

Sie wahrscheinlich für jede Schreib Erstellen eines neuen Objekts. Die static wird alle Objekte den Wert teilen.

Beachten Sie, dass dies nur für einen einzigen Programmlauf einmalig ist. Wenn Sie mehr wollen, verwenden Sie einfach file_ <date_time_stamp>.

+1

Beachten Sie, dass dies nur für eine einzelner Lauf des Programms. Wenn Sie mehr wollen, verwenden Sie einfach file_ . –

+0

Während Sie wahrscheinlich die Ursache des Problems identifiziert haben, wäre eine ordnungsgemäße Verwaltung des Lebenszyklus des Objekts eine viel bessere Lösung. – erickson