Java XMLEncoderSalva l'oggetto con,XMLDecoderrestaurato con
Javaoggetto conFormato XMLPresentazione di un programma di esempio per salvare con .
Per l'output XMLjava.beans.XMLEncoderUsa il.
Anchejava.beans.XMLDecoderIntrodurremo anche un programma di esempio che lo utilizza per ripristinare gli oggetti salvati.
programma di esempio
- I campi dichiarati privati vengono salvati quando si definiscono i metodi getter e setter.
- Solo le modifiche alle variabili vengono salvate nel file XML.
- Puoi anche specificare java.util.HashMap, java.util.ArrayList, ecc. come oggetto da salvare. Ciò è utile per salvare semplicemente lo stato di un oggetto.
// Emette i dati in byte nel file
fileStream = nuovo FileOutputStream(percorso);
fileStream.write(xmlbuff);
fileStream.flush();
} Finalmente {
if (enc!= null) {
inc.chiudi();
}
se (fuori!= null) {
out.close();
}
se (fileStream!= null) {
fileStream.close();
}
}
}
/**
* Ripristina l'oggetto dal file XML nel percorso specificato [percorso].
* *I file XML devono essere salvati utilizzando java.beans.XMLEncoder.
* @param path Il percorso in cui è archiviato l'oggetto.
* @genera FileNotFoundException
* Se il file indicato dal nome del percorso specificato non esiste
*/
L'oggetto statico pubblico readXML (percorso stringa) genera FileNotFoundException {
XMLDecoder d = null;
Tentativo {
d = new XMLDecoder(new BufferedInputStream(
nuovo FileInputStream(percorso)));
return d.readObject();
} Finalmente {
se (d!= nullo) {
d.chiudi();
}
}
}
*La seguente classe verrà utilizzata come esempio della classe da salvare.
Risultato dell'esecuzione
◆Esempio di esecuzione
// Ripristina l'istanza della classe FreeSoft da XML
FreeSoft freeSoft2 = (FreeSoft)readXML(“C:\\FreeSoft.xml”);
System.out.println("Nome software:"+freeSoft2.getName());
System.out.println(“URL:”+freeSoft2.getUrl());
} catch (Eccezione e) {
e.printStackTrace();
}
}
◆Risultato dell'output
Nome del software: Chat & Messenger Sia chat che messenger! ! URL: https://chat-messenger.com/
◆Contenuto di C:\\FreeSoft.xml
Punti da notare durante l'utilizzo
Le classi java.beans.XMLEncoder e java.beans.XMLDecoder sono utili, ma se utilizzate praticamente in Chat&Messenger, in casi estremamente rari, durante l'output in XML con java.beans.XMLEncoder, il file diventa 0 byte.
Se viene letto un file da 0 byte, verrà registrata una ParseException nell'"output dell'errore standard".
Il motivo è che il file diventa vuoto quando viene creata l'istanza FileOutputStream.
Credo che si verifichi quando il processo Java viene arrestato dopo aver creato un'istanza di FileOutputStream ma prima di emettere i dati XML.
A causa di questo problema, Chat&Messenger crea un file di backup per evitare il problema.