xStream und Zeilenumbruch

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo zusammen.

Ich will mir grad eine Datenstruktur via xStream in eine XML-Datein Speichern und wieder lesen. Eine Komponente der Datenstruktur ist ein String, der auch Zeilenumbrüche enthält. Wenn ich mir nach dem erzeugen der XML-Datei diese anschaue, stehen an allen stellen des Zeilenumbruchs
.
Les ich die Datei aber wieder ein, sind keine Zeilenumbrüche mehr da.

Was mach ich falsch???
 
G

Guest

Gast
Kommando zurück!!!

Die Zeilenumbrüche sind doch da, ich stell nur meinen String falsch dar!!!
 

Foermchen82

Top Contributor
Ich hab mir mal die strings angeschaut, wie sie gespeichert werden.

Das ist der Originaltext aus einer Email:

Zeile 1
Zeile 2

Zeile 3

Das Steht in dem String, wenn ich ein getMessageText auf die Message mache:

Zeile 1\r\nZeile 2\r\n\r\nZeile3

Den Text speicher ich wie gesagt mit xStream in eine xml-Datei und lese sie wieder aus.
Dann steht da aber nur noch:

Zeile 1\rZeile 2\r\rZeile3

Geb ich den Text nun mit Syste.out aus bekomme ich:

Zeile 1
Zeile 2

Zeile 3

Pack ich Ihn aber in ein TextArea, steht alles in einer Zeile. Was mach ich falsch?????
 
S

SlaterB

Gast
> Was mach ich falsch?????

gar nix zunächst einmal,
was möchtest du denn?

wenn Java Zeilen umbrechen soll, dann lass doch die \n drin

wenn die Konsole nicht umbrechen soll, dann nimm die \r aus

die beiden Umgebungen reagieren anscheinend unterschiedlich auf diese Zeichen, ist das verboten?
 

Foermchen82

Top Contributor
die \n mach ich ja nicht raus. die sind auf einmal weg, wenn ich die xml-datei wieder einlese.
Der konsole ist es scheinbar egal, ob ich mir \n oder \r einen umbruch mache.
Ich will aber, dass ein JTextArea auch den umbruch darstellt.
Kann man xStream dahingehend konfigurieren, dass es \n nicht löscht??
mir bleibt als letzte idee nur, die\r durch \n zu ersetzen bevor ich sie anzeige!!
 

Foermchen82

Top Contributor
Ich glaub ich hab die Antwort gefunden:

vom Email-Provider kommen beide Zeilenumbrüche; \n und \r. XStream nun interpretiert \n als zeilenumbruch und schreibt diesen nicht einfach in die den outputstring. Der BufferedWriter nimmt ihn als realen Zeilenumbruch und schreibt einfach eine Neue Zeile in die Datei. beim einlesen wiederum werden Zeilenumbrüche irgnoriert.

Ich ersetz also einfach das \r nach dem einlesen durch \n und schon läufts
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben