2012-05-19 10 views
14

So che siamo tenuti a aggiungere uno snipit di codice alle nostre domande, ma sono seriamente interdetto e non posso avvolgere la mia testa o trovare esempi da seguire da.File Java - Aprire un file e scrivere su di esso

In pratica, voglio aprire il file C: \ A.txt, che contiene già dei contenuti e scrivere una stringa alla fine. Fondamentalmente in questo modo.

File A.txt contiene:

John 
Bob 
Larry 

voglio aprire e scrivere Sue alla fine in modo che il file ora contiene:

John 
Bob 
Larry 
Sue 

Scusate alcun esempio di codice, il mio cervello è morto questa mattina ....

+13

Oh questo post è su Geek-e-poke! http://geek-and-poke.com/geekandpoke/2013/11/10/indirizzamento – Lai

risposta

32

Si prega di ricerca Google dato al mondo da Larry Page e 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

Ho controllato Google prima e mi ha portato qui;) – Josh

11

Suggerimenti:

  • Creare un oggetto File che fa riferimento al file già esistente sul disco.
  • Utilizzare un oggetto FileWriter e utilizzare il costruttore che accetta l'oggetto File e un valore booleano, quest'ultimo se true consentirebbe l'aggiunta di testo nel file se esiste.
  • Quindi inizializzare uno PrintWriter passando a FileWriter nel suo costruttore.
  • Quindi chiamare println(...) sul PrintWriter, scrivendo il nuovo testo nel file.
  • Come sempre, chiudi le risorse (il PrintWriter) quando hai finito.
  • Come sempre, non ignorare le eccezioni ma piuttosto catturarle e gestirle.
  • Il close() di PrintWriter deve essere nel blocco finally del tentativo.

esempio,

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(); 
    } 
    } 

Facile, no?

3

di estendere il signor Eels commento, si può fare in questo modo:

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(); 
    } 

Non dire che non è buono per ya!

+3

Da 1+ a ya, ma non dimenticare di chiudere il writer di stampa nel blocco finally, non nel blocco try. Non vuoi risorse penzolanti. Guarda il mio esempio per vedere cosa intendo. –