# \n , in die nächste Zeile springen



## Laurenz G (10. Jul 2012)

Hallo liebe Java Gemeinde,

in einer Schleife wird ein String 'name' befüllt:

name =name+k+"\n";
output.writeChars(name);

und dann Zeile für Zeile in einer Datei geschrieben:

Ich möchte das Linie für Linie befüllt wird. Und nicht alles in einer 'wurst' steht. Habe in Interent gelesen das man das mit \n macht
Das funktioniert nicht.


----------



## jgh (10. Jul 2012)

eigentlich sollte das funzen, aber das kann von System zu System unterschiedlich sein...

versuche es mal mit 

```
String lineSeperator = System.getProperty("line.separator");
```


----------



## Laurenz G (10. Jul 2012)

jgh hat gesagt.:


> eigentlich sollte das funzen, aber das kann von System zu System unterschiedlich sein...
> 
> versuche es mal mit
> 
> ...



soll ich statt \n dann lineSeperator schreiben?


----------



## jgh (10. Jul 2012)

jo, probiere es doch mal aus...
evtl würde es auch mit [c]\r\n[/c] klappen, aber eigentlich ist das der bessere Weg.

Was natürlich auch ein Prob darstellen kann, ist die Art und Weise wie du deine Datei schreibst...aber versuch mal, dann schauen wir weiter.


----------



## faetzminator (10. Jul 2012)

Oder du verwendest einfach einen [japi]BufferedWriter[/japi], welcher intern aber ebenfalls [c]line.separator[/c] verwendet.


----------



## Laurenz G (10. Jul 2012)

Hat beides nicht funktioniert :O
Habe es jetzt mit 
                        writeFile.append(k + "\r\n"); 
                        writeFile.flush();
probiert und es hat geklappt. Komisch ???:L


----------



## SlaterB (10. Jul 2012)

vorher hattest du output, nun writeFile,
was sollen da andere zu sagen?

selbst wenn du die Datei in der einen oder anderen Weise perfekt erstellst,
hängt es immer noch davon ab, mit welchem Programm du die Datei öffnest,


----------



## Laurenz G (10. Jul 2012)

SlaterB hat gesagt.:


> vorher hattest du output, nun writeFile,
> was sollen da andere zu sagen?
> 
> selbst wenn du die Datei in der einen oder anderen Weise perfekt erstellst,
> hängt es immer noch davon ab, mit welchem Programm du die Datei öffnest,



Ja weils bei output nicht geklappt hatte, und deswegen wie oben gesagt hab ichs miit writeFile probiert.


----------



## Win-API (10. Jul 2012)

Das Problem hierbei ist das "\n" zwar korrekt für "NewLine" steht, dies so aber nur unter Unix "Standard" ist. Windows erkennt ein einzelnes "\n" selbst mit Win7 nicht als vollständigen Zeilenumbruch an, denn Win verlangt von Beginn an denn "vollständigen" Zeilenumbruch "\r\n". Unix ist in der Lage diesen auch zu lesen und darum gibt es auch keine Probleme wenn man von Windows zu Unix kopiert. Andersherum aber schon da Unix nun mal in der Regel nur "\n" nutzt und Windows das nicht richtig erkennt.
MAC hingegen verwendet nur "\r" was gerade bei Windows im Terminal gerne mal zu richtig heftigen Fehlern führt. Ich glaube aber das auch das mitlerweile in "\n" oder "\r\n" geändert wurde, aber unter MAC ist halt "\r" der Standard. Allerdings sind MAC und Unix in der Lage jeweiles "\n" als auch "\r" richtig zu erkennen und darzustellen. Und natürlich auch das von Windows verwednete "\r\n".
Das einzige System was halt am "rumheulen" ist ist Windows. Wenn du also sichergehen willst verwende grundsätzlich "\r\n", dann ist Windows glücklich und MAC und Unix können es auch richtig verarbeiten.

Ich bin eigentlich erstaunt das hier alle gleich mit "separator" kommen anstatt mal die Fehlerquelle zu erklären.

btw : wenn du einen alternativen Editor nutzt (z.B. Notepad2) die speziell für Programmierer entwickelt wurden wirst du feststellen das diese auch in der Lage sind mit "nur \n" oder "nur \r" umzugehen. Lediglich Windows' eigener Editor Notepad hat das Problem (und so ziemlich jede andere Software die nicht speziell dagegen gesichert ist).


----------



## Gast2 (10. Jul 2012)

Win-API hat gesagt.:


> Ich bin eigentlich erstaunt das hier alle gleich mit "separator" kommen anstatt mal die Fehlerquelle zu erklären.



Ich nicht, da bei Verwendung von dem Seperator von der Runtime automatisch der korrekte NewLine verwendet wird. 

Die Erklärung ist allerdings mit Sicherheit nützlich für den TO.


----------



## Crian (10. Jul 2012)

Win-API hat gesagt.:


> MAC hingegen verwendet nur "\r" was gerade bei Windows im Terminal gerne mal zu richtig heftigen Fehlern führt. Ich glaube aber das auch das mitlerweile in "\n" oder "\r\n" geändert wurde, aber unter MAC ist halt "\r" der Standard. Allerdings sind MAC und Unix in der Lage jeweiles "\n" als auch "\r" richtig zu erkennen und darzustellen. Und natürlich auch das von Windows verwednete "\r\n".



Du meinst vermutlich Mac. MAC ist etwas anderes. Und dass dort \r als Zeilentrenner verwendet wird, galt nur bis Betriebssystemversion 9. Seit OS X hat das Mac-Betriebssystem einen Unixunterbau und verwendet \n.

Seit etwa 2002 wird OS 9 nicht mehr verwendet, vgl. etwa MarinComics - Mac OS Zeitleiste


----------



## Laurenz G (10. Jul 2012)

Danke für die Antworten haben mir weitergeholfen .


----------

