LadyPreis Geschrieben 18. Juli 2009 Geschrieben 18. Juli 2009 Hi zusammen. Ich habe ein Programm, bei welchem der User eine lokale Bild-Datei als auswählen kann. Dieses Bild stellt ein Attribut einer selbstgeschriebenen Klasse dar. Meine Frage: Wie kann ich nun Objekte dieser Klasse als lokale Datei speichern. Also so, dass das ausgewählte Bild mit in der Datei gespeichert wird. Hintergrund ist, dass die gespeicherte Datei dann auf einem anderen Rechner geladen wird, und dort das Original-Bild nicht zwangsläufig vorhanden ist. Gruß Die Lady Zitieren
flashpixx Geschrieben 19. Juli 2009 Geschrieben 19. Juli 2009 Letztendlich wird es sich um das Interface "Serilizable" handeln Serializable (Java 2 Platform SE v1.4.2) Du kannst das Bild einlesen in Deine Klasse und diese dann serialisieren. Sofern alle Deine Properties ebenfalls das Interface Serializable implementieren geht das ohne Probleme. Da Bilder aber mitunter recht groß werden und Du bei Änderungen am Objekt Du dieses jedes Mal neu übertragen musst, wäre es zu überlegen, ob Du eben auf andere Protokolle ausweichst, die den Datentransfer für Dich realisieren. Das würde heißen, dass Dein Objekt nur eine ID auf das Bild enthält und das serialisierte Objekt übertragen wird, beim Deserialisations-Prozess würdest Du dann z.B. über SMB / FTP / SCP (o.ä.) dann die Daten laden und temporär speichern. Aber Du schilderst leider nicht das gesamte Problem, so dass man hier eher ein bisschen raten muss. Wichtig ist dabei immer die Frage, was musst Du wirklich an Daten übertragen (maximal) und wie oft musst Du das machen. Es wäre z.B. nicht sinnvoll, wenn Du ein Bild per Broadcast alle paar Sekunden ins Netz schickst Phil Zitieren
LadyPreis Geschrieben 19. Juli 2009 Autor Geschrieben 19. Juli 2009 Habe es mittlerweile ausprobiert. Generell ist es kein Problem, mittels eines objectoutputstreams die bilder mit in die Objekt-Datei zu schreiben. Hierbei ist aber zu beachten, dass die Klasse Image nicht das Interface Serializable implementiert. Wer also einmal vor dem gleichen problem steht, der sollte das Attribut der eigenen Klasse auf ImageIcon setzen. Da ImageIcon einen Konstruktor mit einem Image anbietet, muss auch nicht all zu viel am QT geändert werden. Altermnativ dazu kann man natürlich auch von Image erben und dabei Serializable implementieren Und bezüglich der Netzwerk-Performance: Das sollte kein Problem darstellen, da diese Dateiübertragung nur einmal pro Monat ausgeführt werden muss, und da auch nur eine selektierte Menge von Objekten. Aber danke für die Hilfe Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.