当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

Merlin的魔力: 长期长期性[Java编程]

赞助商链接



  本文“Merlin的魔力: 长期长期性[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Merlin 的一种新功效在 Sun 的 Swing Connection 中以各种情势呈现已有一段时间了,实际上它初次被谈论是在 1999 年的 JavaOne 展示会上.这个功效可以将 JavaBean 组件状况长期长期地保存在 XML 文档中.序列化工作合适短时间编组的需求(关于 CORBA 和 RMI)或合适将状况信息保存在一个履行的 servlet 中.但是序列化会产生很多问题,包含类库版本或 Java 运行时环境方面的问题.新的 XMLEncoder / XMLDecoder 类答应将 JavaBean 组件状况转储到文本文件中以便易于在 Java 程序外部举行改正,大概更有大概的是为了生成这种文件.让我们看一下若何利用这两个类以及若何解析生成的文件.

开始

开始时,我们需求定义一个我们要初始化、保存和重新成立的类.让我们定义一个带有以下 4 个属性的类:

测试分数的整数数组,可当作一个经过索引的属性

只读 float 属性,表示平均分数

String 属性,代表学生的姓名

java.awt.Point 属性,代表学生在班里的座位

这个可变的属性范例集将演示编码器若何处理差别的数据范例. 清单 1 显示样本类定义.(它也在 net.zukowski.ibm 包中.请参阅 参考资料,下载本文中利用的代码.)那儿乃至有一个有效的 toString() 办法,我们可以利用这个办法直观地看到检索出的值是设置精确的.

保存状况

既然我们有了用于保存的类,我们可成立一个实例并利用 XMLEncoder 举行保存.这个类可以在 java.beans 包中被找到,它的工作原理与 ObjectOutputStream 相同,但不是 OutputStream 类层次构造的一部份.您可以将要保存到的输出流对象传入 OutputStream ,并调用其 writeObject() 办法将对象写入到流中.这很简单.

清单 2. 成立一个实例并将其保存为 XML // Create
  Sample sample = new Sample();
  sample.setScores(new int[] {100, 90, 75});
  sample.setName("Gore");
  sample.setSeat(new Point(5, 3));
  // Save
  XMLEncoder encoder = new XMLEncoder(
   new BufferedOutputStream(
    new FileOutputStream("Sample.xml")));
  encoder.writeObject(sample);
  encoder.close();

查抄格局

当查抄清单 3 所示的 XML 文件时,您会注意到若何读取格局是与输出在一同编码的,在本例中是与 v1.4 beta 中的 XMLDecoder 一同编码的.这种办法使得将来的发行版可以更改格局,这样假如利用的是对比旧的 XML 文件,新的解码器在生成 XML 文件时会知道利用的是哪类编码范例.从本质上来说,这个文件是一个正规 XML 文件,固守特定的 DTD(本文中没有引用到).但是,解码器可以辨认该文件.

清单 3. 经过编码的 XML 样本实例<?xml version="1.0" encoding="UTF-8"?>
<java version="1.4.0-beta" class="java.beans.XMLDecoder">
  <object class="net.zukowski.ibm.Sample">
   <void property="name">
    <string>Gore</string>
   </void>
   <void property="scores">
    <array class="int" length="3">
     <void index="0">
      <int>100</int>
     </void>
     <void index="1">
      <int>90</int>
     </void>
     <void index="2">
      <int>75</int>
     </void>
    </array>
   </void>
   <void property="seat">
    <object class="java.awt.Point">
     <int>5</int>
     <int>3</int>
    </object>
   </void>
  </object>
</java>

这个特定的 XML 文件未显示若何嵌入用于复位 bean 属性的办法调用,如增添侦听器以及将组件增添到容器.


  以上是“Merlin的魔力: 长期长期性[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • Merlin的魔力: SpringLayout管理器
  • Merlin的魔力: Merlin的新I/O缓冲区的输入和输出
  • <b>Merlin的魔力: Java联网加强技术</b>
  • Merlin的魔力: 操练无缺掌握图形显示
  • Merlin的魔力: 格局化数值和钱币
  • Merlin的魔力: 动态事件监听器代理
  • Merlin的魔力: 长期长期性
  • Merlin的魔力: Swing中的声音
  • Merlin的魔力: Swing 的新JFormattedTextField组件
  • <b>Merlin的魔力: J2SE 1.4.2供应两种新的外观筹划</b>
  • Merlin的魔力: 核心,核心,还是核心
  • Merlin的魔力: 字符集
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .