Java教程是针对JDK 8编写的。本页面描述的示例和实践不利用后续版本引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改以了解Java SE 9及后续版本中更新的语言功能的摘要。
请参阅JDK发行说明以获取有关所有JDK版本的新功能、增强功能以及已删除或已弃用选项的信息。
长期持久性是一种模型,可以将Bean保存为XML格式。
有关XML格式和如何为非Bean实现长期持久性的信息可以在XML Schema和使用XMLEncoder中找到。
XMLEncoder类用于将可序列化对象的文本表示写入输出文件。以下代码片段是将Java Bean及其属性以XML格式写入的示例:
XMLEncoder encoder = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream("Beanarchive.xml")));
encoder.writeObject(object);
encoder.close();
XMLDecoder类读取使用XMLEncoder创建的XML文档:
XMLDecoder decoder = new XMLDecoder(
new BufferedInputStream(
new FileInputStream("Beanarchive.xml")));
Object object = decoder.readObject();
decoder.close();
XML Bean存档具有自己的特定语法,其中包括以下标记来表示每个Bean元素:
<java>标记用于包含Bean的所有对象元素<object>标记用于表示从其序列化形式重构对象所需的一组方法调用
<object class="javax.swing.JButton" method="new">
<string>Ok</string>
</object>
<object class="javax.swing.JButton">
<void method="setText">
<string>Cancel</string>
</void>
</object>
<boolean><byte><char><short><int><long><float><double><int>5555</int>
class>标记用于表示Class的实例。
<class>java.swing.JFrame</class>
array>标记用于定义数组。
<array class="java.lang.String" length="5"> </array>
以下代码表示将为SimpleBean组件生成的XML归档:
<?xml version="1.0" encoding="UTF-8" ?>
<java>
<object class="javax.swing.JFrame">
<void method="add">
<object class="java.awt.BorderLayout" field="CENTER"/>
<object class="SimpleBean"/>
</void>
<void property="defaultCloseOperation">
<object class="javax.swing.WindowConstants" field="DISPOSE_ON_CLOSE"/>
</void>
<void method="pack"/>
<void property="visible">
<boolean>true</boolean>
</void>
</object>
</java>