2011-04-10 16 views
7

Tengo un botón en una GUI, y cuando se presiona el botón, el usuario tiene la capacidad de agregar información a un archivo de texto. Tengo esta parte bien configurada, pero lo que me molesta es que cuando el usuario escribe en el archivo borra toda la información en el archivo de texto y la única línea que queda es la nueva que acaba de agregar. Necesito agregar la información y aún mantener la información original en el archivo de texto. Pensé que el comando append podía hacer esto, pero obviamente estoy haciendo algo mal. ¡Cualquier ayuda sería increíble!Java FileWriter - Adjuntar línea de archivo de texto

Aquí está mi código:

FileWriter fWriter = null; 
    BufferedWriter writer = null; 
    try { 
     fWriter = new FileWriter("info.txt"); 
     writer = new BufferedWriter(fWriter); 


     writer.append(javax.swing.JOptionPane.showInputDialog(this, "add info")); 
     writer.newLine(); 
     writer.close(); 
    } catch (Exception e) { 
    } 

Respuesta

1

Usted necesita writer.flush(). PrintWriter son automático al ras por defecto pero no Writers

+1

'close()' se vaciará, no hay necesidad aquí. – Mat

11

Utilice el constructor que toma un parámetro bool append. Ver los javadocs para FileWriter para eso.

fWriter = new FileWriter("info.txt", true); 
+0

aquí (sun JVM @ ubuntu), parece que cuando se usa FileWriter ("info.txt") solo, se prefiere append. ¿Alguna posibilidad de que dependa de la plataforma sin una advertencia real en la documentación del constructor "predeterminado"? – PypeBros

Cuestiones relacionadas