Alternativen zur binären Serialisierung ?

Status
Nicht offen für weitere Antworten.

Empire Phoenix

Top Contributor
Ich suche einen Weg wie ich ein Java Object speichern kann in eine (notfalls)Menschenlesbare Form, die Zudem auch von anderen Programmen benutzt werden können. (also Standarts hat, wie zb. .ini)

Bei dem Object handelt es sich nur um eine Anzahl von Integern,Floats und Strings.
 

Painii

Bekanntes Mitglied
Schreib die Werte des Objekts in eine Datei? (Einfach als String)

Wenn du willst noch verschlüsseln, wenn nicht dann nicht.

edit:
Das ganze z.b. in der art "int1:value1 int2:value2 String1:"value""

Musst dann nur eine richtige Methode haben um die Sachen auszulesen (vor allem bei Strings die dann auch Leerzeichen haben und so)
 
Zuletzt bearbeitet:

Empire Phoenix

Top Contributor
Hm XML habe ich mich schonmal reingearbeitet, einerseits ist es nicht schlecht im Bezug auf was ich darstellen kann, andererseits ist es allerdings ziemlich aufgeblasen, vor dem Hintergrund wirkt Json interessant.

Mit dem Properties werde ich mich dann auch mal etwas näher befassen.
 
S

Spacerat

Gast
@TS: In Bezug auf XML. Auch schon mal das OpenDocumentFormat (ODF) von OpenOffice angeschaut? Ist im Prinzip nichts anderes als XML gezipped und ausserdem auch sehr verbreitet.
 

André Uhres

Top Contributor
Ich suche einen Weg wie ich ein Java Object speichern kann
Versuch's mal mit XMLEncoder, etwa so:
Java:
import java.beans.*;
import java.io.*;
public class NewClass {
    private Integer i;
    private Float f;
    private String s;
    private static String filename = "newClass.xml";
    public NewClass() {
        i = 0;
        f = 0f;
        s = "";
    }
    public Float getF() {
        return f;
    }
    public void setF(final Float f) {
        this.f = f;
    }
    public Integer getI() {
        return i;
    }
    public void setI(final Integer i) {
        this.i = i;
    }
    public String getS() {
        return s;
    }
    public void setS(final String s) {
        this.s = s;
    }
    @Override
    public String toString() {
        return "i=" + i + "  f=" + f + "  s=" + s;
    }
    public static void save(final NewClass newClass) {
        try {
            XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
                    new FileOutputStream(filename)));
            encoder.writeObject(newClass);
            encoder.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static NewClass load() {
        NewClass newClass = null;
        try {
            XMLDecoder decoder = new XMLDecoder(new BufferedInputStream(
                    new FileInputStream(filename)));
            newClass = (NewClass) decoder.readObject();
            decoder.close();
        } catch (FileNotFoundException ex) {
        }
        return newClass;
    }
}
Java:
public class Main {
    private NewClass newClass;
    public Main() {
        newClass = NewClass.load();
        modifyNewClass();
        NewClass.save(newClass);
    }
    private void modifyNewClass() {
        if (newClass == null) {
            newClass = new NewClass();
        }
        newClass.setF(newClass.getF() + 1);
        newClass.setI(newClass.getI() + 1);
        newClass.setS(String.valueOf(newClass.getF()));
        System.out.println(newClass);
    }
    public static void main(final String[] args) {
        new Main();
    }
}
 

Empire Phoenix

Top Contributor
Ja das habe ich soweit gemacht, und funktioniert auch wie erwünscht.

Was mich etwas stört, dass ich einerseits einen INputStream brauche (aber die Objecte der einfachheithalber in einer Datenbank speichern will (Sie enthalten einige Einstellungsdaten für die Objecte, die je nach Object variieren können) )

Zudem mache ich einen Fehler, oder speichert der XML encoder nur Variablen die ich per set gesetzt habe/und liest auch nur diese, sprich ich habe zb Klasse Auto mit dem private String Marke = "Unbekannt"
wenn ich dieses nun als xml speicher, scheint der Exporter nur die Variablen zu speichern, die ich vorher per set geändert habe zu speichern? Solange ich dieselbe Klasse auch in Java importiere gibt es dabei anscheinend kein Problem, da ja Java die neue Instance des Objectes beim erstellen die default Werte zuweist.

Das Problem tritt jedoch auf, wenn ich die XML datei in einem anderen programm benutzen möchte, das diese Werte nicht kennt. Gibt es hierfür eine einfache sinnvolle Lösung?
 

André Uhres

Top Contributor
Das Problem tritt jedoch auf, wenn ich die XML datei in einem anderen programm benutzen möchte, das diese Werte nicht kennt. Gibt es hierfür eine einfache sinnvolle Lösung?
XMLEncoder optimiert die Ausgabe, so daß alle default Werte (die also eh bekannt sind), nicht noch extra abgespeichert werden. Wenn das externe Programm die default Werte nicht kennt, ist die einzige mir bekannte Lösung, die Werte per set zu ändern.

Ansonsten gibt es noch den Ansatz des XML Data Bindings mit EMF, JAXB, ... Dabei kann ich dir aber leider nicht helfen, weil ich solche Frameworks nicht benutze.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Alternativen zu PropertyChangeSupport..? Java Basics - Anfänger-Themen 5
A Alternativen zu Android Studio ??? Java Basics - Anfänger-Themen 14
J Sortier alternativen mit der compareTo Methode? Java Basics - Anfänger-Themen 6
T Input/Output Alternativen zu setText Java Basics - Anfänger-Themen 3
H alternativen zu if .. else .. Java Basics - Anfänger-Themen 11
F Alternativen zu runnable JAR? Java Basics - Anfänger-Themen 13
G Hibernate, JDO und Alternativen Java Basics - Anfänger-Themen 4
G isdirectory alternativen Java Basics - Anfänger-Themen 8
J Wartezustand in Endlosschleife - bessere Alternativen Java Basics - Anfänger-Themen 20
M Libraries für Arbeit mit Excel (Alternativen) Java Basics - Anfänger-Themen 2
J Bilder auf Container oder alternativen Java Basics - Anfänger-Themen 2
L Binären Bäume für beliebige Datentypen Java Basics - Anfänger-Themen 15
M Binären Baum Kinder setzen Java Basics - Anfänger-Themen 12
U Input/Output Elemente eines Binären Suchbaums ausgeben Java Basics - Anfänger-Themen 10
C Methoden Methode zu einem Binären Suchbaum Java Basics - Anfänger-Themen 8
L Indorder Traversierung eines binären Suchbaumes Java Basics - Anfänger-Themen 1
T Rekursiv Tiefe eines binären Suchbaums ermitteln Java Basics - Anfänger-Themen 22
T Algorithmus zur Überprüfung eines binären Suchbaums Java Basics - Anfänger-Themen 2
N Binären Suchbaum erstellen, nachzuvollziehen Java Basics - Anfänger-Themen 0
W binären Suchbaum Kantenanzahl Java Basics - Anfänger-Themen 3
K Datentypen Umwandlung einer Textfeldeingabe in einen binären Wert Java Basics - Anfänger-Themen 2
J Ebene eines binären Baumes Java Basics - Anfänger-Themen 3
N Tiefe im binären Suchbaum Java Basics - Anfänger-Themen 9
A OOP Binären Datenstrom in Datei schreiben Java Basics - Anfänger-Themen 4
N Rekursive Berechnung der Höhe eines binären Baumes Java Basics - Anfänger-Themen 4
G Pfadlänge eines binären Suchbaums Java Basics - Anfänger-Themen 4
H Tiefensuche im binären Baum Java Basics - Anfänger-Themen 2
G suchen und ersetzen in einer binären Datei Java Basics - Anfänger-Themen 4
H Löschen in einem binären Baum führt zu einem StackOverflow Java Basics - Anfänger-Themen 2
L Binären Baum speichern Java Basics - Anfänger-Themen 6
J String in binären Baum umwandeln Java Basics - Anfänger-Themen 7
D Problem mit der Serialisierung Java Basics - Anfänger-Themen 31
M Serialisierung in Java Java Basics - Anfänger-Themen 10
S Serialisierung: Laden von Objekten - Risiken? Java Basics - Anfänger-Themen 4
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
I Input/Output Alternative zur Serialisierung/ ImageJ Objecte Java Basics - Anfänger-Themen 7
W Nullpointer bei Objekt Serialisierung mit ArrayList<byte[]> etc. Java Basics - Anfänger-Themen 2
V Java Serialisierung Java Basics - Anfänger-Themen 2
O Objekt Listen serialisierung und deserialisieren Java Basics - Anfänger-Themen 5
U Serialisierung Probleme bei Umsetzung Java Basics - Anfänger-Themen 26
V Serialisierung Umbennung einer Klasse Java Basics - Anfänger-Themen 2
G Input/Output Serialisierung oder Datenbank Java Basics - Anfänger-Themen 6
K Input/Output Serialisierung Java Basics - Anfänger-Themen 7
P Serialisierung - Objekte vergleichen Java Basics - Anfänger-Themen 4
J Input/Output Serialisierung Java Basics - Anfänger-Themen 6
K Serialisierung: speichern und auslesen, auslesen klappt nicht Java Basics - Anfänger-Themen 14
B Std-Serialisierung - Speichern/Laden geht nur auf einem Rechner Java Basics - Anfänger-Themen 17
W Problem mit Serialisierung von jTable Java Basics - Anfänger-Themen 15
E Serialisierung - Exception? Java Basics - Anfänger-Themen 21
T Collections (De)-Serialisierung meines HashSets Java Basics - Anfänger-Themen 3
J Input/Output Serialisierung Java Basics - Anfänger-Themen 6
W Problem mit Serialisierung und TableModel Java Basics - Anfänger-Themen 3
F Sonderzeichen bei XML Serialisierung nicht konvertieren Java Basics - Anfänger-Themen 7
O Serialisierung: Object abspeichern und aufrufen Java Basics - Anfänger-Themen 6
L Java Serialisierung Singleton Java Basics - Anfänger-Themen 6
Luk10 Serialisierung bei schon vorhandener Datei Java Basics - Anfänger-Themen 15
I Serialisierung ClassNotFound Java Basics - Anfänger-Themen 8
S serialisierung Java Basics - Anfänger-Themen 3
J Serialisierung - Array-Objekt serialisieren/deserialisieren Java Basics - Anfänger-Themen 6
G Frage zu Serialisierung Java Basics - Anfänger-Themen 4
M Serialisierung erstes Beispiel Java Basics - Anfänger-Themen 4
A Per Serialisierung speichern Java Basics - Anfänger-Themen 2
DStrohma Problem mit Serialisierung Java Basics - Anfänger-Themen 3
T Threads und Serialisierung Java Basics - Anfänger-Themen 4
Z Serialisierung vs. Sicherheit Java Basics - Anfänger-Themen 2
R Serialisierung von Objekten Java Basics - Anfänger-Themen 12
S Serialisierung Java Basics - Anfänger-Themen 8
G Objekt Serialisierung Java Basics - Anfänger-Themen 3
P Serializable - Serialisierung Java Basics - Anfänger-Themen 5
P Collection Vector speichern mittels Serialisierung? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben