2016-06-03 17 views
0

Ich habe den folgenden Code, der eine Textdatei schreibt und die Zahlen aus der Benutzereingabe speichert.Vorhandene Datei in Java überschreiben

for (contador = 0; contador < numeros; contador++){ 
       array[contador]= Integer.parseInt (JOptionPane.showInputDialog("Ingresa " + numeros + " números")); try{ 
        File archivo = new File ("lista de numeros.txt"); 
        FileWriter fr = new FileWriter (archivo,true); 
        fr.write(Integer.toString(array[contador])); 
        fr.write("\r\n"); 
        fr.close(); 
       }catch(Exception e){ 
        System.out.println("Error al escribir"); 
       } 

Was ich tun möchte, ist die Datei einmal zu überschreiben erstellt jedoch nicht anhängen, wenn ich falsch ändern, wird es nicht funktionieren, da nur die letzte Zahl von Benutzereingaben speichert. Gibt es eine andere Möglichkeit, die Datei zu überschreiben? Oder gibt es etwas, das mir fehlt?

+0

Passing 'false' _should_ in der Tat die Datei neu schreiben. Was meinst du mit "es funktioniert nicht, weil nur die letzte Nummer von Benutzereingaben gespeichert wird"? –

+1

Sagen wir, der Benutzer gibt 1,2,3,4,5 ein. Wenn es wahr ist, speichert es die fünf Zahlen. Aber wenn ich zu falsch ändere, speichert es nur die 5. –

Antwort

1

Sie etwas entlang der Linien des Codes unten wünschen würde. File/FileWriter Deklaration außerhalb der try, Initialisierung innerhalb der try und schließen in der finally.

File archivo = null; 
FileWriter fr = null; 
try { 
    archivo = new File("lista de numeros.txt"); 
    fr = new FileWriter(archivo, true); 
    for (contador = 0; contador < numeros; contador++) { 
     array[contador] = Integer.parseInt(JOptionPane.showInputDialog("Ingresa " + numeros + " números")); 
     fr.write(Integer.toString(array[contador])); 
     fr.write("\r\n"); 
    } 
} catch (Exception e) { 
    System.out.println("Error al escribir"); 
} finally { 
    fr.close(); 
} 
+0

Ja, löste das Problem und passierte zu _false_, um –

+0

@TiffanyM wirklich zu überschreiben. Sicher. Ja. Das scheint plausibel. :) –

0

Bitte löschen Sie die Datei, bevor Sie darauf schreiben. Unten gibt es einen Beispielcode, wie Sie eine Datei in Java löschen:

0

Das Problem ist fr.close(); innerhalb von für

File archivo = new File ("lista de numeros.txt"); 
    FileWriter fr = new FileWriter (archivo,true); 

    for (contador = 0; contador < numeros; contador++){ 
     array[contador]= Integer.parseInt (JOptionPane.showInputDialog("Ingresa " + numeros + " números")); try{   
      fr.write(Integer.toString(array[contador])); 
      fr.write("\r\n"); 
     }catch(Exception e){ 
      System.out.println("Error al escribir"); 
     } 

    } 
    fr.close(); 

Die Datei muss nach dem Prozess geschlossen werden

Verwandte Themen