# in ein txt file schreiben



## sintakx (19. April 2004)

hallo. 

ich bin ein neueinsteiger und wollte gerne einige variabeln in ein txt file scheriben, undzwar CSV (also semmikolon getrennt). kann mir jemand kurz erläutern wie man ein neues txt file erstellt und diese dann auffüllt mit den daten? 

danke im voraus


----------



## Christian Fein (19. April 2004)

```
import java.io.*;

public class Write {

    public static void main(String[] args) throws IOException {
	File outputFile = new File("outagain.txt");
        FileWriter out = new FileWriter(outputFile);
        String[] data = String[3]
        data[0] = "eins; zwei; drei;";
        data[1] = "eins; zwei; drei;";
        data[2] = "eins; zwei; drei;";
        for(int i = 0; i < data.length; i++) {
              out.writeln(data[i]);
        }        
        out.close();
    }
}
```

Schau dir bei gelegenheit die Klassen in
java.io.*;
an. Bessonders BufferedStream/Writer, RandomAccessFile, File und ähnliches an.


----------



## sintakx (19. April 2004)

ah ok danke vielmals .)


----------



## sintakx (19. April 2004)

dann hab ich gleich noch eine frage 

wenn ich das in eine for schleife verpacke, dann schreibts die datei jeedesmal neu und löscht das was vorher drin war. wie kann ich es machen dass er einfach eine zeile dazu fügt, anstatt das file zu überschreiben?
nochmals danke im voraus


----------



## Christian Fein (19. April 2004)

sintakx hat gesagt.:
			
		

> dann hab ich gleich noch eine frage
> 
> wenn ich das in eine for schleife verpacke, dann schreibts die datei jeedesmal neu und löscht das was vorher drin war. wie kann ich es machen dass er einfach eine zeile dazu fügt, anstatt das file zu überschreiben?
> nochmals danke im voraus



Das steht in der API Dokumentation drinne 
http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html


```
FileWriter

public FileWriter(String fileName,
                  boolean append)
           throws IOException

    Constructs a FileWriter object given a file name with a boolean indicating whether or not to append the data written.

Parameters:
    fileName - String The system-dependent filename.
    append - boolean if true, then data will be written to the end of the file rather than the beginning. 
Throws:
    IOException - if the named file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
```

Der Schlüssel ist boolean append im Construktor. Du musst einen boolischen Wert (true/false) für append angeben.


```
public static void main(String[] args) throws IOException {
	File outputFile = new File("outagain.txt",true);
```

Der Schlüssel zu all deinen Problemen liegt in der API beschreibung:
http://java.sun.com/j2se/1.4.2/docs/api/

Die solltest du lernen zu lesen, da kannst du komplett nachschlagen wie mann welche Klasse nutzt


----------



## sintakx (19. April 2004)

danke  werde mir das zu herzen nehmen, mit der api  THX


----------



## Thomas Darimont (20. April 2004)

Hallo!

Ich würde aber vor dem close() noch ein flush() aufrufen, da erst dann die Daten aus dem Buffer auf das Medium geschrieben  werden. Dies wird von close() IMHO nicht garantiert.

Gruß Tom


----------

