Objekte speichern?

Hallo Xperten,

kann man unter Java Objekte in Dateien speichern?

Und wenn, dann wie.

Ich hätte nämlich vor, z.B. ein Objekt Wurst zu speichern, welches dann die Attribute „GESCHMACK, Preis“ usw. hätte.

Diese sollen dann in einer Datei gespeichert werden, und am besten wäre es, wenn man diese Datei als dieses Objekt einlesen könnte.

Geht das???

Das geht über Serialisierung.

Kurze Erklärung (mehr findest du über „java serialization“ z.b. bei google):

Deine Klassen, die gespeichert werden sollen, müssen das Interface java.io.Serializable implementieren (leeres Interface, brauchst keine Methoden implementieren).

public class MeineKlasse implements java.io.Serializable
{
}

Zum Schreiben und lesen verwendest du java.io.ObjectOutputStream bzw. java.io.ObjectInputStream und deren Methoden writeObject bzw. readObject

Grüße
Bruno

Primitive Datentypen innerhalb deiner Klasse und die meisten Standard-JDK-Klassen sind serialisierbar. Hast du Referenzen auf andere eigene Klassen innerhalb deiner Klasse müssen diese auch serialisierbar sein.

Grüße
Bruno

Danke für die schnelle rAntwort, auf den ersten Blick scheint das genau das zu sein, was ich suche:smile: Juhuu

Hab meine Sachen jetzt zwar schon mal ein bisschen anders implementiert, aber ich hoffe, das sollte sich nicht allzu schwer ändern lassen.

Da Du auf diesem Gebiet einiges zu verstehen scheinst und ich eher auf Kriegsfuss mit der Java Dateispeicherung stehe, frage ich gleich noch etwas:
Lässt sich irgendetwas (in meinem jetzigen Fall wären es Strings (Stw: StreamTokenizer)) an das EOF einer Datei schreiben, ohne diese zuvor komplett neu zu speichern???

Da Du auf diesem Gebiet einiges zu verstehen scheinst und ich
eher auf Kriegsfuss mit der Java Dateispeicherung stehe, frage
ich gleich noch etwas:
Lässt sich irgendetwas (in meinem jetzigen Fall wären es
Strings (Stw: StreamTokenizer)) an das EOF einer Datei
schreiben, ohne diese zuvor komplett neu zu speichern???

Falls du auch serialisierte Objekte meinst => geht nicht, da die Dateien ein ganz spezielles Format habne

Falls du nur an eine Datei irgendwie was anhängen möchtest (unter Strings verstehe ich jetzt mal nicht das Objekt String sondern den Inhalt des Strings in die Datei schreiben) dann geht das schon, z.b. indem du

den Konstruktor

public FileOutputStream(String name,
boolean append)

aus java.io.FileOutputStream verwendest

1 Like

Huups, so leicht geht das!?
Dann danke für die Gute Hilfe. Irgendwie scheint in Java ja alles möglich:smile:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]