# neue Textdatei DOS/Unix-Format



## me.toString (2. Mrz 2007)

Ich erzeuge mit meiner Anwendung eine Textdatei ... aber leider wird die Datei immer im Unix-Format gespeichert - egal ob es unter Linux oder Windows läuft (die Machine, wovon das Projekt gestartet wird, ist allerdings eine Linux-Maschine - aber das müsste doch egal sein ?!). Und unter Windows fehlen dann die ganzen Zeilenumbrüche ... ihr kennt das ja sicherlich ...
Wie kann ich Java nun beibringen, das die Datei bitteschön im DOS-Format zu schreiben ist - mir persönlich ist das ja egal ... aber der Kunde will nun mal die Daten im DOS-Format.

Hier noch fix der Code, wie ich die Datei erstelle und reinschreibe - vielleicht ist da ja schon der/ein Fehler:

```
FileOutputStream fout = new FileOutputStream( Dateiname );			
fout.write( (Objekt mit dem Text).getBytes() );
```


----------



## Wildcard (2. Mrz 2007)

Der Stream schreibt was du ihm gibst.
'Objekt mit dem Text' ist wenig aussagekräftig.


----------



## me.toString (2. Mrz 2007)

Das ist ein "ganz einfacher" String. Und die Zeilenumbrüche sind als \n  mitten im String.


----------



## Wildcard (2. Mrz 2007)

Dann darfst du dich nicht wundern. \n ist der Unix Zeilenumbruch.
Windoof hat \n\r


----------



## Leroy42 (2. Mrz 2007)

Ein FileoutputStream schreibt auch immer nur genau das,
was du ihm sagst. Und ein "\n" ist nun mal in ASCII ein
newline (Code 10 dezimal).

Du mußt schon einen FileWriter benutzen, um die "Newlines"
betriebssystemabhängig zu schreiben (DOS: "\r\n", Mac: "\r", Unix: "\n")

Wenn du aber *immer* im DOS-Format schreiben willst,
kannst du auch einnen FileOutputStream benutzen und
_zu Fuß_ "\r\n" hineinschreiben.


----------



## me.toString (2. Mrz 2007)

Vielen Dank !!


----------



## Wildcard (2. Mrz 2007)

Leroy42 hat gesagt.:
			
		

> Du mußt schon einen FileWriter benutzen, um die "Newlines"
> betriebssystemabhängig zu schreiben (DOS: "\r\n", Mac: "\r", Unix: "\n")


Du meinst bestimmt den PrintWriter?  ???:L


----------



## Apollo (7. Mrz 2007)

Hi Leute, stehe vor dem gleichen Problem. Eine neue Zeile zu erzeugen ist nicht das Ding, aber Sonderzeichen funktionieren bei mir nicht. Benutzen tue ich den FileWriter.


```
fw = new FileWriter(datei); 
fw.write(strText);
```


----------



## Wildcard (7. Mrz 2007)

Meine Glaskugel bleibt dunkel.


----------



## thE_29 (7. Mrz 2007)

Den Line Sep kriegt man mit

System.getProperty("line.separator");

Und Apollo, was meinst du mit Sonderzeichen (also ö,ä oder ?,!, @ )und wo kannst du sie nicht mehr ansehen? In nem Texteditor oder wo klappt es nicht mehr?


----------



## Apollo (7. Mrz 2007)

Also !,?,) funktionieren jedoch €,ö,ä funktionieren nicht, wenn ich die Textdatei im Notepad öffne. Es handelt sich bei mir allerdings um Windows und nicht um DOS.


----------



## Apollo (7. Mrz 2007)

Ich habe es jetzt auch hinbekommen   


```
FileOutputStream fos = new FileOutputStream(dateipfad+dateiname+".txt");
            PrintWriter pw =   new PrintWriter(new OutputStreamWriter(fos, "Windows-1252"));
            pw.write(strText);
            pw.close();
```


----------

