2012-05-19 16 views
14

Sé que se supone que debemos agregar un fragmento de código a nuestras preguntas, pero estoy realmente estupefacto y no puedo entender ni encontrar ejemplos de los que seguir.Archivo de Java: abra un archivo y escríbalo

Básicamente quiero abrir el archivo C: \ A.txt, que ya tiene contenido y escribir una cadena al final. Básicamente así

Archivo A.txt contiene:

John 
Bob 
Larry 

quiero abrirlo y escribir Sue al final lo que el archivo contiene ahora:

John 
Bob 
Larry 
Sue 

Lo siento por ningún ejemplo de código, mi cerebro se muertos esta mañana ....

+13

Oh este post es sobre friki-y-meter! http://geek-and-poke.com/geekandpoke/2013/11/10/indirection – Lai

Respuesta

32

Por favor, busque Google dado al mundo por Larry Page y Sergey Brin.

BufferedWriter out = null; 
try 
{ 
    FileWriter fstream = new FileWriter("out.txt", true); //true tells to append data. 
    out = new BufferedWriter(fstream); 
    out.write("\nsue"); 
} 
catch (IOException e) 
{ 
    System.err.println("Error: " + e.getMessage()); 
} 
finally 
{ 
    if(out != null) { 
     out.close(); 
    } 
} 
+11

Primero miré a Google y me llevó hasta aquí;) – Josh

11

Sugerencias:

  • Crea un objeto File que hace referencia al archivo ya existente en el disco.
  • Utilice un objeto FileWriter y use el constructor que toma el objeto File y un booleano, este último si true permitiera anexar texto en el archivo si existe.
  • A continuación, inicialice un PrintWriter pasando el FileWriter a su constructor.
  • Luego llame al println(...) en su PrintWriter, escribiendo su nuevo texto en el archivo.
  • Como siempre, cierre sus recursos (el PrintWriter) cuando haya terminado con él.
  • Como siempre, no ignore las excepciones, sino más bien las capte y administre.
  • El close() del PrintWriter debe estar en el bloque try's finally.

por ejemplo,

PrintWriter pw = null; 

    try { 
    File file = new File("fubars.txt"); 
    FileWriter fw = new FileWriter(file, true); 
    pw = new PrintWriter(fw); 
    pw.println("Fubars rule!"); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } finally { 
    if (pw != null) { 
     pw.close(); 
    } 
    } 

Fácil, no?

3

de ampliar la observación del Sr. anguilas, puede hacerlo de esta manera:

File file = new File("C:\\A.txt"); 
    FileWriter writer; 
    try { 
     writer = new FileWriter(file, true); 
     PrintWriter printer = new PrintWriter(writer); 
     printer.append("Sue"); 
     printer.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

no diga que no es bueno ya!

+3

1+ a ti, pero no olvides cerrar el escritor de impresión en el bloque finally, no en el bloque try. Usted no quiere ningún recurso colgante. Mira mi ejemplo para ver a qué me refiero. –

Cuestiones relacionadas