Java XMLEncoderSpeichern Sie das Objekt mit,XMLDecoderrestauriert mit
JavaObjekt mitXML-FormatVorstellung eines Beispielprogramms zum Speichern mit .
Für XML-Ausgabejava.beans.XMLEncoderBenutzen Sie die.
Auchjava.beans.XMLDecoderAußerdem stellen wir ein Beispielprogramm vor, das damit gespeicherte Objekte wiederherstellt.
Beispielprogramm
- Als privat deklarierte Felder werden gespeichert, wenn Sie Getter- und Setter-Methoden definieren.
- Nur Änderungen an Variablen werden in der XML-Datei gespeichert.
- Sie können auch java.util.HashMap, java.util.ArrayList usw. als zu speicherndes Objekt angeben. Dies ist nützlich, um einfach den Status eines Objekts zu speichern.
// Bytedaten in Datei ausgeben
fileStream = new FileOutputStream(path);
fileStream.write(xmlbuff);
fileStream.flush();
} Endlich {
if (enc != null) {
enc.close();
}
if (out != null) {
out.close();
}
if (fileStream != null) {
fileStream.close();
}
}
}
/**
* Stellt das Objekt aus der XML-Datei im angegebenen Pfad [Pfad] wieder her.
* *XML-Dateien müssen mit java.beans.XMLEncoder gespeichert werden.
* @param path Der Pfad, in dem das Objekt gespeichert ist.
* @throws FileNotFoundException
* Wenn die durch den angegebenen Pfadnamen angegebene Datei nicht existiert
*/
öffentliches statisches Objekt readXML(String path) löst FileNotFoundException {
XMLDecoder d = null;
versuchen {
d = neuer XMLDecoder(neuer BufferedInputStream(
new FileInputStream(path)));
return d.readObject();
} Endlich {
if (d != null) {
d.close();
}
}
}
*Die folgende Klasse wird als Beispiel für die zu speichernde Klasse verwendet.
Ausführungsergebnis
◆Ausführungsbeispiel
// Instanz der FreeSoft-Klasse aus XML wiederherstellen
FreeSoft freeSoft2 = (FreeSoft)readXML(“C:\\FreeSoft.xml“);
System.out.println(“Soft name:”+freeSoft2.getName());
System.out.println(“URL:”+freeSoft2.getUrl());
} Catch (Ausnahme e) {
e.printStackTrace();
}
}
◆Ausgabeergebnis
Name der Software: Chat & Messenger Sowohl Chat als auch Messenger! ! URL: https://chat-messenger.com/
◆Inhalt von C:\\FreeSoft.xml
Bei der Verwendung zu beachtende Punkte
Die Klassen java.beans.XMLEncoder und java.beans.XMLDecoder sind nützlich, aber wenn sie praktisch in Chat&Messenger verwendet werden, wird die Datei in äußerst seltenen Fällen bei der Ausgabe in XML mit java.beans.XMLDecoder zu 0 Bytes. Bestätigung.
Wenn eine 0-Byte-Datei gelesen wird, wird eine ParseException in der „Standardfehlerausgabe“ aufgezeichnet.
Der Grund dafür ist, dass die Datei leer wird, wenn die FileOutputStream-Instanz erstellt wird.
Ich glaube, es tritt auf, wenn der Java-Prozess nach der Instanziierung des FileOutputStream, aber vor der Ausgabe der XML-Daten heruntergefahren wird.
Aufgrund dieses Problems erstellt Chat&Messenger eine Sicherungsdatei, um das Problem zu vermeiden.