Wie funktioniert Serialisierung?

Status
Nicht offen für weitere Antworten.

thE_29

Top Contributor
Also ich will meinem Unterprogramm 3 Objekte mitübergeben!

Das mit dem reinschreiben hab ich

Code:
            ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("/tmp/.FiLe"));
            os.writeObject(PosMenu.clog);
            os.writeObject(PosMenu.stack);
            os.writeObject(posMenu);
            os.flush();
            os.close();

und rauslesen, is ja fast das gleiche, die Frage aber ist, ich muss ja Serializable implementieren!

Also ich sage meinem posMenu = PosMenu Objekt das es implement sein soll
Code:
public class PosMenu
    extends JPanel
    implements KeyListener, InterfaceFußleiste, InterfaceButton, Runnable,
    FocusListener, Serializable

nur muss ich jetzt noch Funktionen implementieren oder? Nur welche? In der Schule war mal was mit >> write oder so ähnlich (oder es war C++). Leider ist das halt schon ziemlich lange her, darum weiß ich es nicht mehr genau!

Weil wenn ich ihn das File reinschau, steht da sowas, deswegen glaub ich halt das es nicht wirklich funktioniert:
sonderzeichen ... java.io.NotSerializableException java.io_ObjectStreamExceptio sonderzeichen....

Deswegen galub ich das da was nicht passt!
 
B

bygones

Gast
das interface Serializable hat keine Methode die du implementieren musst.

Deine Klasse muss aber das Interface implementieren wenn sie gespeichert werden will.
Code:
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("file"));
oos.writeObject(OBJECT_TO_WRITE_DAS_Serializable_IMPLEMENTIERT);
oos.flush();
oos.close();

Aber es ist überhaupt zu überlegen was du tun willst. Warum willst du eine JPanel serialisieren ????
 

akira

Bekanntes Mitglied
Deine Klasse muss aber das Interface implementieren wenn sie gespeichert werden will.

Nicht nur die, auch alle Unterobjekte müssen serialisierbar sein. Bei Swing-Klassen gibt es glaube ich Probleme mit der Serialisierung. Speichere lieber nur die "nakten" Daten und nicht die Swing-Objekte.
 
B

bygones

Gast
akira hat gesagt.:
Nicht nur die, auch alle Unterobjekte müssen serialisierbar sein. Bei Swing-Klassen gibt es glaube ich Probleme mit der Serialisierung. Speichere lieber nur die "nakten" Daten und nicht die Swing-Objekte.
Richtig !

Und wegen Swing - serialisierung:
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.
 

thE_29

Top Contributor
Also muss ich jedes Objekt was ich einem Objekt was ich serialisiere (ich hasse dieses Wort!!!) auch serialisieren??

Na oag.... ;)

Gibts da nix einfacheres so mit Objekte speichern?
 
R

Roar

Gast
wie dbac schon gefragt hat, wieso willst du das ganzen JPane labspeichern? sind da irgendwelche daten drin? wieso speicherst du nicht einfach nur die daten ab?
 

thE_29

Top Contributor
jo, dafür kann ich nix, ist von der Vorgängerin so. Muss so gemacht werden, ansonsten kann ich viel umändern!

das Menü ist kein Menü wie "Datei Bearbeiteben" und sowas, sondern ein anderes Menü, heißt nur so!

Gibt es den eine andere Art Objekte zu speichern, da zum Beispiel das Menü eigentlich auf alle (ca. 50 Unterprogramme) verlinkt und ich die dann ja eigentlich auch serialsieren muss!
 

citizen_erased

Bekanntes Mitglied
eigentlich willst du ja nicht alle (menü)elemente speichern, sondern nur deren aktuelle werte.
da das meistens primitive datentypen sind, ist die serialisierung auch kein problem. notwendig wäre nur die seperate haltung der daten. vielleicht ist ja doch irgendwo ein solches objekt/ solche objekte vorhanden. dann musst du nur diese speichern.

zum thema fällt mir noch eins ein. manche schlüsselwörter für attribute verhinden eine serialisierung dieser.
Code:
transient
gehört auch jedenfall dazu, weiss gerade nicht, ob es mehr gibt.
obwohl eine schnittstelle zu erfüllen ist, muss keine methode implementiert werden. das ist immer der fall, wenn es sich bei der schnittstelle um eine markierungsschnittstelle (markerinterface) handelt.

alternativen?

damit kann ich überhaupt nix anfagen
das Menü [ist] eigentlich auf alle (ca. 50 Unterprogramme) verlinkt
???:L
 

thE_29

Top Contributor
das heißt ich müsste alle 50 unterprogramm serialisieren hinschreiben ;) und dann noch in jedem Objekt usw ... ;)

das heißt das objekt zum Speichern wird riesig, hier ist alles verschachtelt halt ;)


also, wirklich Alternativen zum Objekt speichern gibts net? Kann ich es eigentlich einfach so abspeichern und wieder lesen?

Es gab ja mal in C fwrite/fread mit denen man ganze Strukturen/Klassen abspeichern hat können!

Gibt es sowas in Java??
 
B

bygones

Gast
es ist auch nicht gedacht, dass jemand eine SwingKomponente speichert. Das ist programmtechnisch gesehen unsinnig..
Du kannst in Java nur Objekte speichern die das Interface implementieren, anders geht es nicht !

PS: Wenn alles so verschachtelt ist mach dich auf nen StackOverFlow Error gefasst - der wird geworfen, wenn die Rekursionstiefe zu groß wird
 

thE_29

Top Contributor
na so a käse :(

also das mit dem stackoverflow wird schon net passieren! weil ja immer alles freigegeben wird usw.


Nur sieht das so aus

Oberfläche mit Menü (Menü besteht aus Buttons auf einem JPanel!)

so, jetzt klickst du auf einen Button, UnterProgramm macht sich auf

Der bekommt das Menü mit, das Logging Objekt für Fehlermitprotokollieren und den Stack mit übergeben.

(Will das ganze jetzt aber dynamischer machen, also will ich das Menü, ControlLogging und den Stack in eine Datei abspeichern und statt das Unterprogramm im Menü aufzurufen, ruf ich ein ShellScript auf mit den angaben zum Pfad der Datei und einen Key (weil ich es verschlüsseln will). Somit kann ich das Menü dynamischer machen, weil wenn ich jetzt ein Unterprogramm änder, kann ich das Menü neu zusammenkompilieren lassen und das jar File bläht sich halt unheimlich auf ;) ) (hoffe ihr versteht ein bißchen :bae: )

Wenn man das Programm schließt wird das Menü wieder aufgerufen, das ControlLogging Objekt hat der sich sowieso behalten (wird weitervererbt ) und den Stack auch!

Deswegen so kompliziert, weil ja nicht jedes Menü (es gibt auch UnterMenüs) gleich aussieht!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Serialisierung funktioniert nicht Allgemeine Java-Themen 9
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
boschl2000 Springerproblem-Implementierung funktioniert nicht richtig Allgemeine Java-Themen 1
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
N Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 6
Lukas2904 Wie funktioniert ein KeyLogger? Allgemeine Java-Themen 3
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
Killunox MaxHeap Zuweisung unter Linux funktioniert nicht Allgemeine Java-Themen 1
I Wieso funktioniert das nich? Allgemeine Java-Themen 5
Dann07 MP3 Datei abspielen funktioniert nicht Allgemeine Java-Themen 6
O Aus JAR-Datei erstellte EXE-Datei funktioniert nicht Allgemeine Java-Themen 10
A Mp3 Player funktioniert nicht Allgemeine Java-Themen 0
X JNA funktioniert nicht mehr Allgemeine Java-Themen 4
bueseb84 FolderWatcher mit WatchService funktioniert nur bedingt Allgemeine Java-Themen 5
Drachenbauer Division mit Int funktioniert nicht Allgemeine Java-Themen 3
O docx-Datei erzeugung mit DocXStamper funktioniert nicht Allgemeine Java-Themen 2
F Schleife funktioniert nicht richtig Allgemeine Java-Themen 13
T Split() Methode funktioniert nicht?! Allgemeine Java-Themen 11
L Tesseract-OCR 4.0 unter Linux funktioniert nicht Allgemeine Java-Themen 3
J Wie konkret funktioniert das Modulsystem unter Java 11? Allgemeine Java-Themen 4
J Neuronales Netz funktioniert mal und mal nicht. Allgemeine Java-Themen 3
T Umlaute in Eclipse einlesen funktioniert nicht Allgemeine Java-Themen 16
A Methodenaufruf funktioniert nicht richtig Allgemeine Java-Themen 5
C WindowBuilder Design funktioniert nicht Allgemeine Java-Themen 0
J FTPSClient funktioniert nicht Allgemeine Java-Themen 4
H IDEA IntelliJ Java Mail funktioniert nach Export nicht mehr! Allgemeine Java-Themen 1
M Operatoren Warum funktioniert diese überprüfung nicht? Allgemeine Java-Themen 7
R jar-Datei funktioniert nicht Allgemeine Java-Themen 2
E Open Declaration Funktioniert nicht Allgemeine Java-Themen 0
R Verschlüsselung funktioniert nicht Allgemeine Java-Themen 5
RalleYTN requires transitive funktioniert nicht? Allgemeine Java-Themen 7
R Bruteforce hashes mit multithreading. Funktioniert das so? Allgemeine Java-Themen 0
P Best Practice Wieso funktioniert der Modulo - Operator nicht? Allgemeine Java-Themen 2
HarleyDavidson Eigener PropertyChangeListener funktioniert einfach nicht Allgemeine Java-Themen 3
J Exclude funktioniert nicht Allgemeine Java-Themen 2
K .jar funktioniert nicht vollständig Allgemeine Java-Themen 1
P Java https proxy (-Dhttps.proxyHost) Start-Parameter funktioniert nicht? Allgemeine Java-Themen 2
L Auswertung eines Testes funktioniert nicht Allgemeine Java-Themen 37
O Fahrenheit/Celsius Converter funktioniert nicht Allgemeine Java-Themen 2
D Collections.sort funktioniert nicht in exportierten .class Dateien Allgemeine Java-Themen 10
J Arrays auf gleichheit untersuchen funktioniert nicht Allgemeine Java-Themen 11
P GUI: ArrayList anzeigen funktioniert nicht Allgemeine Java-Themen 5
H Timer funktioniert nicht? Allgemeine Java-Themen 3
R javax.comm --> Programm funktioniert nach Export nicht mehr Allgemeine Java-Themen 0
O Mein JButton Array funktioniert nicht Allgemeine Java-Themen 3
R Erste Schritte Object reference funktioniert nicht. Wie mach ichs richtig? Allgemeine Java-Themen 3
J If Abfrage funktioniert nicht Allgemeine Java-Themen 4
R Objekt funktioniert nicht auf iOS Allgemeine Java-Themen 15
U PersistenceManager.createEntityManager funktioniert nicht Allgemeine Java-Themen 3
D Java Datei nach Eclipse Export funktioniert nicht Allgemeine Java-Themen 0
M Eigene forEach()-Methode funktioniert nicht. Allgemeine Java-Themen 2
H File.listFiles() funktioniert nicht... Allgemeine Java-Themen 10
JG12111989 Auswertung von Fragebogen funktioniert nicht! Allgemeine Java-Themen 7
M Primzahlberechnung funktioniert nicht. Allgemeine Java-Themen 4
A JFreeChart funktioniert nicht :( Allgemeine Java-Themen 6
C file.delete() funktioniert bei zweiten aufruf nicht mehr Allgemeine Java-Themen 3
F Datei einlesen funktioniert nicht Allgemeine Java-Themen 3
A Debugger im Java-Editor funktioniert nicht Allgemeine Java-Themen 5
B DB-Zugriff einer Webanwendung funktioniert nicht mit Java 7 Allgemeine Java-Themen 2
B Web-Anwendung funktioniert mit Java 1.8, aber nicht mit Java 1.7 (auf Client) Allgemeine Java-Themen 5
J Swing Cursor.WAIT funktioniert nicht nach JFileChooser Allgemeine Java-Themen 1
P Wie funktioniert das Feedback eines Klicks auf eine Java GUI Allgemeine Java-Themen 10
F JTextField funktioniert nicht Allgemeine Java-Themen 6
Athena Programm funktioniert nur beim Debugging korrekt, sonst nicht. Allgemeine Java-Themen 1
S CSV Eintrag der nächsten Zeile auslesen funktioniert nicht Allgemeine Java-Themen 8
S Command funktioniert in Kommandzeile aber nicht mit ProcessBuilder bzw. Runtime.exec auf MAC Allgemeine Java-Themen 3
G Verschlüsselungsalgorythmus funktioniert nicht Allgemeine Java-Themen 2
buggy84 Ausführen einer Batch mit Parameterübergabe funktioniert nicht richtig Allgemeine Java-Themen 18
G Befehl funktioniert in Eclipse allerdings nicht in einer Jar-Datei Allgemeine Java-Themen 3
N Werte aus Arrays auslesen funktioniert nicht Allgemeine Java-Themen 5
W getResources funktioniert nur in Eclipse, nicht in JAR Allgemeine Java-Themen 2
S Methode funktioniert nicht als ActionListener Allgemeine Java-Themen 4
M exec() funktioniert nicht Allgemeine Java-Themen 1
M RC4-Chiffre (funktioniert eingeschränkt) Allgemeine Java-Themen 6
X Datentypen Dropzone.options funktioniert nicht Allgemeine Java-Themen 1
D Java funktioniert nur mit deaktivierter Grafikkarte Allgemeine Java-Themen 3
L Erste Schritte Eclipse und Lokal funktioniert - in HTML nicht! Allgemeine Java-Themen 2
K MD5 funktioniert nicht korrekt !? Allgemeine Java-Themen 9
M JAR Datei erstellen funktioniert nicht Allgemeine Java-Themen 5
Q JLabel Textausgabe funktioniert nicht Allgemeine Java-Themen 4
E SimpleDateFormat-Konvertierung funktioniert nicht Allgemeine Java-Themen 3
T Dateidownload Funktioniert nicht Allgemeine Java-Themen 4
C Wie funktioniert Projektplanung? Allgemeine Java-Themen 18
K String.replace funktioniert nicht Allgemeine Java-Themen 3
G treeMap.putall funktioniert nicht?! Allgemeine Java-Themen 2
DaniSahne96 Threads Code funktioniert nicht wie er sollte Allgemeine Java-Themen 9
S Warum funktioniert die runable -.jar nicht? Allgemeine Java-Themen 7
P Eclipse Unter Windows erstelle .jar unter Linux (Ubuntu) funktioniert nicht Allgemeine Java-Themen 5
H Mit Ant erstelltes jar funktioniert nicht wie direkt in Eclipse Allgemeine Java-Themen 8
aze Jar ausführen über Runtime.execute funktioniert nicht Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben