StyledDocument speichern und laden

Ezra

Bekanntes Mitglied
Hallo Leute,

ich komme an einer Stelle momentan nicht weiter. Ich möchte ein StyledDocument speichern und auch wieder laden können. Dazu habe ich unter anderem folgenden Thread gefunden:
http://www.java-forum.org/awt-swing-swt/50041-styleddocument-dauerhaft-speichern.html

Leider tritt bei mir dasselbe Problem auf. Das Dokument wird ohne Inhalt gespeichert. André Uhres hatte dazu offenbar eine Lösung zu Fuß angegeben, jedoch funktioniert der Link dazu nicht mehr.
Könnt ihr mir einen Tipp geben?

Hier ist der Quelltext (der auch zuerst als Lösung angegeben wurde):
Java:
public static void writeEntry(StyledDocument sd, String entryName) {
		try {
			XMLEncoder o = new XMLEncoder(new BufferedOutputStream(
					new FileOutputStream(entryName+".xml")));
			o.writeObject(sd);
			o.close();
		} catch (IOException e) {
			System.err.println("Failed to write entry " + entryName);
			e.printStackTrace();
		}
	}

	public static StyledDocument readEntry(String entryName) throws FileNotFoundException {
		XMLDecoder d = null;
		d = new XMLDecoder(new BufferedInputStream(new FileInputStream(
				entryName+".xml")));
		Object result = d.readObject();
		d.close();
		return (StyledDocument) result;
	}
 
Ja, kann man auch. Das habe ich im Moment auch so implementiert. Aber ich habe gelesen, dass das für die persistente Speicherung nicht so geeignet sein soll.
 
Darum möchte ich das nicht über den ObjektOutputStream speichern:
JTextComponent (Java Platform SE 6)
Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.
 
Naja, ne JTextComponent solltest du ja auch nicht speichern. Sondern eher n AbstractDocument, StyledDocument, ... whatever. Da haste aber die selbe API-Warnung, wollt nur anmerken, dass du die JTextComponent nicht speichern solltest, sondern den Inhalt 😉 .
 
Naja, ne JTextComponent solltest du ja auch nicht speichern. Sondern eher n AbstractDocument, StyledDocument, ... whatever.
Gut, der Link war nicht ganz korrekt. Aber siehe Titel und Quelltext, es geht schon die ganze Zeit um das StyledDocument.
 
Gut, der Link war nicht ganz korrekt. Aber siehe Titel und Quelltext, es geht schon die ganze Zeit um das StyledDocument.

Bin ich mir bewusst. Aber nachdem ein StyledDocument vom logischen her nicht soweit von einer JTextComponent weg liegt, wollte ich sicherheitshalber darauf hinweisen - nicht dass hier Missverständnisse auftreten.
 

Zurück
Oben