Serialisierung komplett selbst machen

kirdie

Bekanntes Mitglied
Ich habe eine Swing-Anwendung, bei der sehr viele Eingaben gemacht werden und möchte diese abspeichern. Eines meiner Panels enthält vor allem eine JTextArea, was das einzige ist, was ich bei der Serialisierung sichern möchte.
Blöderweise pfuscht mir Java dabei ständig herum, wodurch mein Programm dann abstürzt, obwohl ich extra writeObject() und readObject() überschrieben habe, weil Java unbedingt sinnlos versucht, irgendwelche Oberklassen mit zu serialisieren.
Dabei ist alles, was ich in die Serialisierungsdatei schreiben möchte der Textinhalt der Textarea. Kann ich das irgendwie sicherstellen? Ich möchte also die vollständige Kontrolle über die Serialisierung haben.

Hier mein Quellcode:

Java:
class MainFrame()
{
JPanel prefixPanel = new PrefixPanel();
...
public void loadState(File file)
	{
		try
		{
			ObjectInputStream d = new ObjectInputStream(new BufferedInputStream(new FileInputStream(file)));
			prefixPanel  = (PrefixPanel)d.readObject();
			d.close();
		}
		catch (Exception e)
		{
			JOptionPane.showMessageDialog(this, "Loading state not successful ("+e+").");
		}
	}

	public void saveState(File selectedFile)
	{
		try
		{
			ObjectOutputStream e = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(selectedFile)));
			e.writeObject(prefixPanel);
			e.close();
		}
		catch (Exception e1)
		{
			JOptionPane.showMessageDialog(this, "Saving state not successful ("+e1+").");
		}
	}
...
}

Java:
public class PrefixPanel extends JPanel implements Serializable
{
    JTextArea textArea = new JTextArea("default text");

	private synchronized void writeObject( java.io.ObjectOutputStream s )  throws IOException
	{
		s.writeObject(textArea.getText());
	}

	private synchronized void readObject( java.io.ObjectInputStream s )  throws IOException, ClassNotFoundException
	{
		String str = (String)s.readObject();
		textArea.setText(str);
	}

 public PrefixPanel()
     {
                ...
	        JScrollPane areaScrollPane = new JScrollPane(textArea);
	        this.add(areaScrollPane);
                 ...
    }
 
Zuletzt bearbeitet:

AmunRa

Gesperrter Benutzer
Und warum speicherst du nicht einfach den Text deiner TextArea in eine Datei?

warum möchtest du das unbedingt Serialisieren?
 

kirdie

Bekanntes Mitglied
Naja das ist ja dann unelegant. Fürs Speichern ist ja die Serialisierung gedacht. Ich probier das auch gerade ohne Serialisierung aus aber so richtig stylish ist das ja nicht...
 

AmunRa

Gesperrter Benutzer
Äh doch, dass ist genau der Weg wie man es machen sollte.

Die Serialisierung ist nur dazuda ein Objekt einer Klasse zu speichern und nicht eine GUI
 

XHelp

Top Contributor
Serialisierung ist ja auch Abbildung von Objekten und nicht Abbildung von "Textinhalten eines TextAreas".
Wo hast du es denn her, dass es mit Serialisierung "stylischer" ist? oO
 

kirdie

Bekanntes Mitglied
Naja das sagt halt mein Gefühl :)
Und der Textinhalt ist ja für mich das wesentliche am Objekt, was restauriert werden soll.
 

AmunRa

Gesperrter Benutzer
Wie du sagst ist der Textinhalt das wesentlich und deswegen sollte man auch nur das wesentliche Speichern also vergiss die Serialisierung und speichere nur den Text
 

megaflop

Mitglied
Ich möchte also die vollständige Kontrolle über die Serialisierung haben

Dann serialisiere nur das, was du auch serialisieren willst. Auch einen String kannst du serialisieren. Denn ein String ist doch auch ein Objekt.

Beim lesen setzt du dann halt nicht das ganze Panel, sondern nur den String, den du aus dem ObjectInputStream bekommst, als neuen Inhalt des bereits vorhandenen Textpanels.
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Dann serialisiere nur das, was du auch serialisieren willst. Auch einen String kannst du serialisieren. Denn ein String ist doch auch ein Objekt.

Beim lesen setzt du dann halt nicht das ganze Panel, sondern nur den String, den du aus dem ObjectInputStream bekommst, als neuen Inhalt des bereits vorhandenen Textpanels.

Möglich ist es schon... Aber du gehst ja nicht zum Proktologen, damit er deine Zähne anguckt, auch wenn es möglich wäre.
 
J

JohannisderKaeufer

Gast
Möglich ist es schon... Aber du gehst ja nicht zum Proktologen, damit er deine Zähne anguckt, auch wenn es möglich wäre.
:noe:
Ich hatte mal einen Klassenkameraden, der sich einer Schönheitschirurgie im Kieferbereich unterzog. Dabei wurde dann für ein paar Wochen der Mund/Kiefer mit Draht fixiert. Dem bliebe nur der Weg zum Proktologen(Das ist der, der die Löcher macht.).:shock:
 
J

JohannisderKaeufer

Gast
Einer der wenigen Berufe die es als Erfolg bezeichnen, wenn Scheiße rauskommt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
antonia09 Einkaufszettel Persistenz und Serialisierung Allgemeine Java-Themen 6
D Serialisierung und Deserialisierung von Objekten - Frageprogramm Allgemeine Java-Themen 4
R Datentypen Korrekte integer in Hex ASCII Konvertierung und serialisierung Allgemeine Java-Themen 1
M Serialisierung funktioniert nicht Allgemeine Java-Themen 9
Z Best Practice Serialisierung Allgemeine Java-Themen 2
Arif Input/Output Serialisierung - Datei wird nicht erzeugt Allgemeine Java-Themen 3
M Alternative zur Serialisierung.. Protobuf? Allgemeine Java-Themen 9
E Serialisierung - Deserialisierung Allgemeine Java-Themen 4
Thallius Serialisierung schlägt fehl. Allgemeine Java-Themen 3
M Serialisierung & Verschlüsselung Allgemeine Java-Themen 2
E Serialisierung - Sinn einer generierten serialVersionUID? Allgemeine Java-Themen 4
V Serialisierung von Instanz eigener Klasse Allgemeine Java-Themen 5
A Input/Output Serialisierung und Object.hashCode() Allgemeine Java-Themen 3
K Serialisierung einer verschachtelten Datenstuktur Allgemeine Java-Themen 9
Tobse Input/Output Dateiformat: Serialisierung VS Custom format Allgemeine Java-Themen 6
A Problem bei Serialisierung von Bibliotheks-Klassen Allgemeine Java-Themen 6
A Input/Output Serialisierung Sonderzeichen Allgemeine Java-Themen 3
P Serialisierung der Oberklasse Allgemeine Java-Themen 2
Kr0e Circular reference - Serialisierung Allgemeine Java-Themen 6
K Serialisierung in Properties-Datei möglich? Allgemeine Java-Themen 3
B Serialisierung mit Unterobjekten über Netzwerk Allgemeine Java-Themen 3
C Serialisierung - Standardwert für nachträglich hinzugefügtes Feld Allgemeine Java-Themen 2
S Serialisierung der Kindklasse Allgemeine Java-Themen 5
C Serialisierung ohne Serializable Allgemeine Java-Themen 4
S Serialisierung und Referenzen Allgemeine Java-Themen 6
S Viele Bilder -> Speicher ausgelastet? / (De-)serialisierung geht nicht mehr richtig Allgemeine Java-Themen 8
E Objekt bei Serialisierung ändern Allgemeine Java-Themen 2
Q Serialisierung / Speicherung Geschwindingkeit & Aktuelle Position Allgemeine Java-Themen 7
Z Serialisierung und Deserialisierung einer HashMap Allgemeine Java-Themen 17
W Serialisierung Allgemeine Java-Themen 6
K Serialisierung von Hashmap in Vector Allgemeine Java-Themen 3
F Serialisierung und Obfuscation? Allgemeine Java-Themen 7
G (De)serialisierung und Referenzen Allgemeine Java-Themen 5
T Serialisierung: Wie macht RMI das so schnell? Allgemeine Java-Themen 14
J Serialisierung: readInt + writeInt Allgemeine Java-Themen 4
X Einige Fragen zu Serialisierung Allgemeine Java-Themen 2
J bean + serialisierung + serialVersionUID Allgemeine Java-Themen 3
K Serialisierung Allgemeine Java-Themen 6
thE_29 Wie funktioniert Serialisierung? Allgemeine Java-Themen 10
S Problem mit Serialisierung Allgemeine Java-Themen 2
C Serialisierung von JComboBox Allgemeine Java-Themen 4
E Varialbe komplett Löschen Allgemeine Java-Themen 26
Z JVM komplett tot - Eclipse + Browser gehen nicht + Screenshots Allgemeine Java-Themen 1
D Webseite wird nicht immer komplett ausgelesen Allgemeine Java-Themen 11
K Textdatei komplett auslesen bis auf 2 Zeilen Allgemeine Java-Themen 2
S Java komplett löschen und neu installieren Allgemeine Java-Themen 4
T JRE komplett von einem PC entfernen? Allgemeine Java-Themen 5
G WindowAdapter - Datensatz wird nicht komplett gespeichert Allgemeine Java-Themen 7
S GUI komplett schließen und wieder Neu laden? Allgemeine Java-Themen 4
F Bild (File) komplett serialisieren Allgemeine Java-Themen 9
R Array komplett auf null setzen Allgemeine Java-Themen 10
TheJavaKid DefaultTableModel komplett leeren Allgemeine Java-Themen 2
S komplett in native kompilieren Allgemeine Java-Themen 6
I Hibernate Envers - Aufruf der Methode zum Speichern selbst ausführen oder managen? Allgemeine Java-Themen 0
P JavaFX Anwendung beendet sich selbst nur als Jar Allgemeine Java-Themen 40
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
G Beendet sich der Thread selbst?! Allgemeine Java-Themen 3
W IDEA IntelliJ Build-Management-Tool selbst programmieren Allgemeine Java-Themen 2
Tausendsassa Threads Einen Thread sich selbst schließen lassen Allgemeine Java-Themen 17
S Mit Generics Klasse erstellen die selbst T erweitert..? Allgemeine Java-Themen 4
S Shape selbst rendern..? Allgemeine Java-Themen 5
N Automatisches einfügen einer selbst generierten ID in Klasse mit Annotation Allgemeine Java-Themen 8
M Programm startet sich selbst neu, alte Logfiles bleiben gesperrt Allgemeine Java-Themen 2
Z Klassen ArrayList selbst machen Allgemeine Java-Themen 5
R JRE Ablaufdatum seit 7u10 - Probleme bei selbst ausgelieferter JRE bekannt? Allgemeine Java-Themen 3
J kann eine .jar sich selbst verschieben? Allgemeine Java-Themen 6
C Eclipse Probleme bei selbst erstelltem Algorithmus Allgemeine Java-Themen 2
Q Zeit in GUI selbst aktualisieren Allgemeine Java-Themen 5
D PriorityQueue selbst implementieren Allgemeine Java-Themen 15
W Annotations selbst erstellen und auswerten Allgemeine Java-Themen 4
M Selbst geschriebener InputStreamReader über einen beliebigen InputStream Allgemeine Java-Themen 4
J Können Programme sich selbst erweitern? Allgemeine Java-Themen 6
J Objekt selbst ertellen möglich? Allgemeine Java-Themen 6
J Crawler selbst geschreiben: OutOfMemoryError Allgemeine Java-Themen 14
N JFrame Icon selbst erzeugen Allgemeine Java-Themen 2
PAX Applikation sich selbst neu starten lassen Allgemeine Java-Themen 27
P Eigene Klasse kopieren die auf sich selbst refferenziert Allgemeine Java-Themen 8
R synchronized "gegen sich selbst" Allgemeine Java-Themen 5
J BufferedWriter schreibt von selbst ein "" Allgemeine Java-Themen 12
H JButtons selbst gestallten Allgemeine Java-Themen 6
V Sich selbst kopieren (Jar- Datei) Allgemeine Java-Themen 3
ARadauer programm soll sich selbst ändern können Allgemeine Java-Themen 20
F Klasse soll sich selbst returnieren mit entsprechendem Typ. Allgemeine Java-Themen 15
V Avatar selbst programmieren Allgemeine Java-Themen 4
E externe Anwendung aufrufen und sich selbst beenden Allgemeine Java-Themen 8
F Kann Applet installierte JVM selbst auswählen? Allgemeine Java-Themen 4
R DropTarget auch für Applet selbst Allgemeine Java-Themen 2
M vererbung einer "selbst-instanzierungs-klasse" Allgemeine Java-Themen 16
J ID selbst vergeben Allgemeine Java-Themen 2
E Einer Methode sich selbst übergeben . ? Allgemeine Java-Themen 5
J Fenster mit paint Methode selbst zeichnen Allgemeine Java-Themen 3
C Vectoren befuellen sich von selbst Allgemeine Java-Themen 2
P Programm selbst starten lassen Allgemeine Java-Themen 2
B Installshield selbst gemacht Allgemeine Java-Themen 3
E Objekt serialisiert sich selbst Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben