Java XMLEncoderSalve o objeto com,XMLDecodificadorrestaurado com
Javaobjeto comFormato XMLApresentando um programa de exemplo para salvar com .
Para saída XMLjava.beans.XMLEncoderUse o.
Tambémjava.beans.XMLDecoderTambém apresentaremos um programa de exemplo que usa isso para restaurar objetos salvos.
programa de amostra
- Os campos declarados privados são salvos quando você define métodos getter e setter.
- Somente as alterações nas variáveis são salvas no arquivo XML.
- Você também pode especificar java.util.HashMap, java.util.ArrayList, etc. como o objeto a ser salvo. Isto é útil para simplesmente salvar o estado de um objeto.
//Saída de dados de bytes para arquivo
fileStream = novo FileOutputStream(caminho);
arquivoStream.write(xmlbuff);
fileStream.flush();
} finalmente {
if (enc! = nulo) {
enc.close();
}
if (fora! = nulo) {
out.close();
}
if (fileStream! = nulo) {
fileStream.close();
}
}
}
/**
* Restaura o objeto do arquivo XML no caminho especificado [path].
* *Os arquivos XML devem ser salvos usando java.beans.XMLEncoder.
* @param path O caminho onde o objeto está armazenado.
* @throws FileNotFoundException
* Se o arquivo indicado pelo nome do caminho especificado não existir
*/
objeto estático público readXML (caminho da string) lança FileNotFoundException {
XMLDecoder d = nulo;
tentar {
d = novo XMLDecoder(novo BufferedInputStream(
novo FileInputStream(caminho)));
retornar d.readObject();
} finalmente {
if (d! = nulo) {
d.fechar();
}
}
}
*A aula a seguir será usada como amostra da aula a ser salva.
Resultado da execução
◆Exemplo de execução
// Restaura a instância da classe FreeSoft do XML
FreeSoft freeSoft2 = (FreeSoft)readXML(“C:\\FreeSoft.xml”);
System.out.println(“Nome oficial:”+freeSoft2.getName());
System.out.println(“URL:”+freeSoft2.getUrl());
} catch (Exceção e) {
e.printStackTrace();
}
}
◆Resultado de saída
Nome do software: Chat & Messenger Chat e Messenger! ! URL: https://chat-messenger.com/
◆Conteúdo de C:\\FreeSoft.xml
Pontos a serem observados ao usar
As classes java.beans.XMLEncoder e java.beans.XMLDecoder são úteis, mas quando usadas praticamente no Chat&Messenger, em casos extremamente raros, ao enviar para XML com java.beans.XMLEncoder, o arquivo passa a ter 0 bytes.
Se um arquivo de 0 byte for lido, uma ParseException será registrada na "saída de erro padrão".
A razão para isso é que o arquivo fica vazio quando a instância FileOutputStream é criada.
Acredito que isso ocorre quando o processo Java é encerrado após instanciar o FileOutputStream, mas antes de gerar os dados XML.
Devido a esse problema, o Chat&Messenger cria um arquivo de backup para evitar o problema.