Speichern als Binär - /Serialisierung von java
Habe ich, Zitat auf Zitat,
1.Speichern Konten eine binäre (serialisiert) - Datei.
2.Laden (neu) Konten von einem binären (serialisiert) - Datei.
Also, Erstens, ich war auf der Suche, Beispiele, was genau das ist und ich bin verloren, im gleichen Szenarien die Menschen schweigen xml, in meinem Kopf ich denke, es bedeutet, wie 01010011000 (Binär), und wenn ich mir andere code sieht es aus wie eine normale text-Datei speichern.
Was genau meint er damit, und kann mir jemand post ein Beispiel, oder geben Sie mir eine Website, die besser verdeutlicht?
Sobald ich sehe, was ich wirklich brauchen, kann ich es implementieren, ist es leicht, ich bin einfach verwirrt, was genau wird gespeichert (Daten-Weise) und wie.
*Ich habe bereits eine option zum speichern via Textdatei (.txt) wenn ich nur einige, die code für diese binäre Teil.
Dank!
Hier ist, was ich jetzt habe, funktioniert es immer noch nicht, denke ich.
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;
public class SerializationMain implements Serializable {
public static void saveSerialized(Object YourObject, String filePath) throws IOException {
ObjectOutputStream outputStream = null;
try {
outputStream = new ObjectOutputStream(new FileOutputStream(filePath + ".dat"));
outputStream.writeObject(YourObject);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
if (outputStream != null) {
outputStream.flush();
outputStream.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public static Object loadSerialized(String filePath, Object[][] data1) throws IOException {
try {
FileInputStream fileIn = new FileInputStream(filePath);
ObjectInputStream in = new ObjectInputStream(fileIn);
try {
data1 = (Object[][]) in.readObject();
} catch (ClassNotFoundException ex) {
Logger.getLogger(SerializationMain.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
System.out.println(data1.length);
return data1;
}
}
Das habe ich versucht, aber ich denke, dass ich versagt habe. haha (ich fügte hinzu, mehr code oben auch)
Wauw! Erstens, re-throw exceptions oder zumindest zu protokollieren. Sie haben keine Ahnung, was passiert, wenn Sie lassen Sie Ihre catch-Blöcke leer. Möglicherweise geben Sie einen Hinweis darauf, was passiert.
gut, ja...aber wie meine Serialisierung-speichern/laden von setup-richtig oder falsch? Ich will einfach nur, um zu speichern, die double array-Objekt, dann bekommen Sie es zurück. Und etwas nicht funktioniert. Wie bei den catch-Blöcken Sie sind nur den Umgang mit Datei-Ausnahmen Recht? Ich weiß, die Datei wird neu geladen, und ich weiß, dass es speichert, also auch, wenn ich log Sie, es wird nicht egal, bei diesem Schritt, richtig?
Sie können nicht speichern von Arten von java.lang.Objekt, wie es implementiert nicht die Schnittstelle Serializable, die erforderlich ist für die Objekt-Serialisierung.
InformationsquelleAutor Austin | 2012-03-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, Sie haben eine Klasse namens "Konto" müssen Sie einfach implementiert Serializable an der Spitze der header-Klasse.
Von meinem Verständnis, das wird serialisiert alle Daten in eine binäre form. Sie müssen natürlich noch die Schritte durchführen, die tatsächlich schreiben/Lesen das class-Objekt aus einer Datei mit ObjectOutputStream/ObjectInputStream.
So zum Beispiel...
Dann in deiner main-Funktion zum Beispiel, wo Sie wollen das Objekt zu speichern, erstellen Sie eine Datei, schließen Sie Sie an ein ObjectOutputStream und schreiben Sie Ihr Objekt in binärer form.
Ich habe das Teil jetzt, aber es ist immer noch nicht funktioniert.
InformationsquelleAutor Matthew
Erste Treffer auf google: http://www.javacoffeebreak.com/articles/serialization/index.html - grundsätzlich sollte man serialisieren, Ihr Objekt in eine Datei. Dann können Sie laden es in ein Objekt später wieder.
InformationsquelleAutor smox