Long 期坚持

“Long 期持久性”是一个模型,使 bean 可以以 XML 格式保存。

可以在XML SchemaUsing XMLEncoder中找到有关 XML 格式以及如何实现非 bean 的 Long 期持久性的信息。

编码器和解码器

分配了XMLEncoder类以编写用于表示Serializable对象的文本表示形式的输出文件。以下代码片段是以 XML 格式编写 Java bean 及其属性的示例:

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 是什么?

XML bean 归档文件具有自己的特定语法,该语法包括以下标记来表示每个 bean 元素:

  • XML 前言,用于描述 XML 版本和编码类型

  • 一个<java>标记以体现 bean 的所有对象元素

  • <object>标记,代表从其序列化形式重建对象所需的一组方法调用

<object class="javax.swing.JButton" method="new">
    <string>Ok</string>
</object>

or statements

<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>