\n , in die nächste Zeile springen

Laurenz G

Mitglied
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.
 
eigentlich sollte das funzen, aber das kann von System zu System unterschiedlich sein...

versuche es mal mit
Java:
String lineSeperator = System.getProperty("line.separator");
 
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.
 
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,
 
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).
 
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
 

Zurück
Oben