2012-05-19 13 views
14

Ich weiß, dass wir unseren Fragen einen Code-Schnipsel hinzufügen sollen, aber ich bin ernsthaft sprachlos und kann mir nicht den Kopf einschlagen oder Beispiele finden, denen ich folgen könnte.Java-Datei - Öffnen Sie eine Datei und schreiben Sie daran

Grundsätzlich möchte ich Datei öffnen C: \ A.txt, die bereits Inhalt enthält, und schreiben Sie eine Zeichenfolge am Ende. Grundsätzlich so.

Datei A.txt enthält:

John 
Bob 
Larry 

Ich möchte um es öffnen und Sue am Ende zu schreiben, damit die Datei enthält nun:

John 
Bob 
Larry 
Sue 

Es tut uns kein Codebeispiel, mein Gehirn tot heute morgen ....

+13

Oh dieser Beitrag ist auf Geek-and-Poke! http://geek-and-poke.com/geekandpoke/2013/11/10/indirection – Lai

Antwort

32

Bitte Suche Google der Welt von Larry Page und Sergey Brin gegeben.

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

Ich habe zuerst Google überprüft und es hat mich hierher geführt;) – Josh

11

Vorschläge:

  • Erstellen Sie ein Objekt File, das sich auf die bereits vorhandene Datei auf der Festplatte bezieht.
  • Verwenden Sie ein FileWriter Objekt, und verwenden Sie den Konstruktor, der das File-Objekt und einen booleschen Wert übernimmt, letzteres, wenn true das Anhängen von Text in die Datei zulassen würde, wenn sie existiert.
  • Dann initialisieren Sie eine Übergabe des FileWriter in seinen Konstruktor.
  • Dann rufen Sie println(...) auf Ihrem PrintWriter und schreiben Sie Ihren neuen Text in die Datei.
  • Schließen Sie wie gewohnt Ihre Ressourcen (den PrintWriter), wenn Sie damit fertig sind.
  • Wie immer, Ausnahmen nicht ignorieren, sondern fangen und behandeln sie.
  • Die close() des PrintWriter sollte im Block "try's finally" sein.

z.B.

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

einfach, nicht wahr?

3

erweitern auf Mr. Eels Kommentar, können Sie es wie folgt tun:

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

Sagen Sie nicht, wir ya ist nicht gut!

+3

1+ zu ya, aber vergessen Sie nicht, den Druck-Writer im finally-Block zu schließen, nicht im try-Block. Du willst keine baumelnden Ressourcen. Sehen Sie mein Beispiel, um zu sehen, was ich meine. –

Verwandte Themen