Java: Zeilenumbruch in Datei

jennyk

Grünschnabel
Hallo,
hab ein an sich profanes Problem, finde aber nirgendwo eine Lösung:

Ich schreibe in meinem Programm verschiedenen Strings in eine Datei und möchte ab und zu einen Zeilenumbruch haben.
Leider funktioniert "\n" nicht (anscheinend versteht das mein Editor nicht, genauso wenig wie "\r"). Gibt es noch eine andere Möglichkeit?

Danke für Eure Hilfe! :)
 
Hallo!

Das Zeichenfolge für Zeilenumbruch ist betriebssystemspezifisch. In einer Java Anwendung kann man die Zeichenfolge für den Zeilenumbruch (line separator) über das System Property: line.separator abfragen.
Unter Windows ist der line separator "\r\n" und unter Mac/Linux/Unix "\n".

Hier ein kleines Beispiel dazu:
Java:
package de.tutorials;

public class LineSeparatorExample {

  final static String lineSeparator = System.getProperty("line.separator");
  
  public static void main(String[] args) {
    System.out.print(lineSeparator);
    System.out.print("xxx");
  }
}

Ausgabe:
Code:
xxx


Gruß Tom
 
Hallo!

Wie schreibst du denn die Daten in die Textdatei?

so zum Beispiel: ?

Java:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

/**
 * @author      Darimont<br>
 * @version     1.0<br>
 * Date of creation:  31.03.2004<br>
 * File:         FWriter.java<br>
 * Modifier:     Darimont<br>
 * Revision:     Revision<br>
 * State:        Germany<br>
 */

public class FWriter {

	public static void main(String[] args) {
		new FWriter().doIt();
	}

	/**
	 * 
	 */
	private void doIt() {
		// TODO Auto-generated method stub
		try {
			BufferedWriter bw = new BufferedWriter(new FileWriter(new File("c:/test0.txt")));
			bw.write("Hallo, Welt!\r\n");
			bw.write("Test1234");
			bw.flush();
			bw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

Gruß Tom
 
Hallo!

Ja, es kommt drauf an, ob der Editor den Text im Unix Style ( \n [10] ) als Endezeichen
oder im Win32 Style (\r\n [13,10] ) als Endezeichen interpretiert.

Der Windows Notepad braucht derweil (\r\n).

Gruß Tom
 
Meine Methode sieht so aus:


Java:
protected static boolean schreibeDatei(String meldung, String dateiname){
  try
  {
      RandomAccessFile loggdatei = new RandomAccessFile(dateiname, "rw");     
      loggdatei.seek( loggdatei.length() ); 
      loggdatei.writeChars( meldung );      
      loggdatei.close();                          
      return true;
  }
  catch(Exception e)
  {
      return false;
  }
}

Als Editor benutze ich den ganz normalen Windows XP - Editor.
Wenn ich mir die Datei im WordPad anschaue, dann klappt es zwar mit den Zeilenumbrüchen, allerdings kommt dann nach jedem Zeichen ein [].
 
Es funktioniert! :)

Hab in den Meldungen \r benutzt und dann, vor datei.close die Methode datei.writeByte(10) aufgerufen.

Danke für Eure Hilfe! :)


PS: In Meldung steht drin, was ich in die Datei schreiben soll.
 
Zurück