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 „Gefällt mir“
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]