Java Text in eine Datei schreiben

Posted: April 16th, 2009 | Filed under: Programmieren | Tags: , , , , , , , , , , | 14 Comments »

Heute möchte ich euch zeigen wie man mittels Java einfach man einen Text in eine Datei schreiben kann. Das ganze wird über den FileWriter realisiert. Dieser kann verschieden genutzt werden. Zum einen ist es möglich eine vorhandene Datei zu überschreiben, zum anderen kann ein Text an eine bereits bestehende Datei angehängt werden. Wie das funktioniert zeige ich euch im Quelltext.

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class FileWriterExample {
  
  FileWriter writer;
  File file;
  
  public void schreiben(){
    // File anlegen
     file = new File("FileWriterTest.txt");
     try {
       // new FileWriter(file ,true) - falls die Datei bereits existiert
       // werden die Bytes an das Ende der Datei geschrieben
       
       // new FileWriter(file) - falls die Datei bereits existiert
       // wird diese überschrieben
       writer = new FileWriter(file ,true);
       
       // Text wird in den Stream geschrieben
       writer.write("Hallo Wie gehts?");
       
       // Platformunabhängiger Zeilenumbruch wird in den Stream geschrieben
       writer.write(System.getProperty("line.separator"));

       // Text wird in den Stream geschrieben       
       writer.write("Danke mir gehts gut!");
       
       
       // Schreibt den Stream in die Datei
       // Sollte immer am Ende ausgeführt werden, sodass der Stream 
       // leer ist und alles in der Datei steht.
       writer.flush();
       
       // Schließt den Stream
       writer.close();
    catch (IOException e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args) {
    FileWriterExample fileWriterExample = new FileWriterExample();
    fileWriterExample.schreiben();
  }
}

Hier könnt ihr euch den Quelltext (FileWriterExample.java) herunterladen.


14 Comments on “Java Text in eine Datei schreiben”

  1. 1 Rama said at 16:10 on Juli 29th, 2009:

    Hallo…!!!

    Sehr gut…
    ganz gut..
    Vielen Dank.

    grüß
    Rama

  2. 2 Felix said at 12:49 on Dezember 3rd, 2010:

    Hallo,
    kannst du mir erklären, wie man in eine NICHT-LEERE Datei schreibt, bzw in eine schon bestehende Datei etwas anhängt?

    lg,
    Felix

  3. 3 admin said at 16:41 on Dezember 3rd, 2010:

    In eine bestehende Datei etwas anhängen steht bereists im Quelltext:
    new FileWriter(file ,true) – falls die Datei bereits existiert werden die Bytes an das Ende der Datei geschrieben

    Deine erste Frage verstehe ich nicht ganz^^

  4. 4 Cid said at 19:50 on Juni 23rd, 2011:

    jo, da ist ein Fehler, sollte mal wer korrigieren…
    new FileWriter(file, true) –> append (ans Ende anhängen)
    new FileWriter(file, false) –> rewrite (altes löschen und neue Datei)
    der Kommentar oben sagt ja leider das Gegenteil…

  5. 5 MZ said at 08:08 on Oktober 12th, 2012:

    Danke hat mir sehr geholfen ! 🙂

  6. 6 admin said at 09:16 on März 14th, 2013:

    Sehr gute Anleitung, viel besser als „viel Theorie und wenig Code“, wie es in meisten Anleitungen ist 🙂

  7. 7 Joey said at 13:52 on Mai 11th, 2013:

    Gute Anleitung, aber wo liegt diese Datei? Also wo würde im Fall des Beispiels die Datei „FileWriterTest“ liegen?

  8. 8 admin said at 16:24 on Mai 11th, 2013:

    yep genau FileWriterTest.txt

  9. 9 Kiryava said at 23:25 on Oktober 28th, 2013:

    Vielen Dank!
    Die Anleitung hat mir sehr geholfen 🙂

  10. 10 biri said at 10:46 on November 19th, 2013:

    Hallo. Kann man auch noch das Datum und die Uhrzeit mit ausgeben lassen? Eine Art Logfile.

  11. 11 admin said at 11:16 on November 19th, 2013:

    Klar zum Beispiel so (ungetestet):

    SimpleDateFormat formatter = new SimpleDateFormat(„yyyy.MM.dd – HH:mm:ss „);
    Date currentTime = new Date();
    writer.write(formatter.format(currentTime));

  12. 12 Lars said at 16:14 on Februar 26th, 2014:

    Bei mir klappt das nicht.
    Ich hab versucht so eine schreiben Methode in ein Applet zu integrieren, damit der einen Namen speichert, den er beim nächsten mal wieder laden soll (sofern vorhanden)…
    Aber er will sich nichtmal speichern.

    if (cb.equals("speichernaus")) {
                knoepfe.toFirst();
                while (knoepfe.hasAccess()) {
                    Flaeche co = (Flaeche) knoepfe.getObject();
                    if (co.callback.equals("speichernan")) {
                        co.name = speichertext;
                        speichern = false;
                        if (speichertext.length()>0) {
                            speicherstaende.append(new Speicherstand(speichertext,aktuell,bots,spieler.getX(),spieler.getY()));
                            Knopfcallback("speichernstopp");
                            text = "Karte "+speichertext+" gespeichert.";
                            speichertext = "";
                            textzeit = 100;
                            file = new File("SpeicherstaendeTextdatei.txt");
                            try {
                                // new FileWriter(file ,true) - falls die Datei bereits existiert
                                // werden die Bytes an das Ende der Datei geschrieben
    
                                // new FileWriter(file) - falls die Datei bereits existiert
                                // wird diese überschrieben
                                writer = new FileWriter(file ,true);
    
                                // Text wird in den Stream geschrieben
                                writer.write("Kartenname = "+speichertext);
    
                                // Platformunabhängiger Zeilenumbruch wird in den Stream geschrieben
                                writer.write(System.getProperty("line.separator"));
    
                                // Text wird in den Stream geschrieben       
                                writer.write("Hier muss dann noch die map rein.");
    
                                // Schreibt den Stream in die Datei
                                // Sollte immer am Ende ausgeführt werden, sodass der Stream 
                                // leer ist und alles in der Datei steht.
                                writer.flush();
    
                                // Schließt den Stream
                                writer.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                                System.out.println("Fehler beim Speichern");
                                text = "Fehler beim Speichern in Textdatei";
                                textzeit = 100;
                            }
                        }
                        else {
                            text = "Ungültiger Name.";
                            textzeit = 100;
                        }
                    }
                    knoepfe.next();
                }
            }
    
  13. 13 HDManager said at 20:22 on März 2nd, 2014:

    DANKE habe gestern mit Java angefangen 😀

  14. 14 Christian said at 16:17 on November 29th, 2016:

    us deinem Quelltext ging für mich irgendwie nicht ganz hervor, wie man es nun schafft des der Rest, der schon in der Datei steht, nicht verloren geht.


Leave a Reply