科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道JAVA进阶:根据所涉及对象生成XML文档

JAVA进阶:根据所涉及对象生成XML文档

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

JAVA进阶:根据所涉及对象生成XML文档

作者:baocl 来源:赛迪网技术社区 2007年11月7日

关键字: 生成XML 涉及对象 java

  • 评论
  • 分享微博
  • 分享邮件

根据对象生成XML文档. 使用Java提供的java.beans.XMLEncoder
和java.beans.XMLDecoder类
一、生成的xml文件如下:AStudent.xml
< ?xml version="1.0" encoding="UTF-8"?>
< java version="1.5.0" class="java.beans.XMLDecoder">
< object class="StudentBean">
  < void property="age">
    < int>25< /int>
  < /void>
  < void property="gender">
    < string>kate< /string>
  < /void>
  < void property="name">
    < string>liuying< /string>
  < /void>
  < void property="phone">
    < string>44557788< /string>
  < /void>
< /object>< /java>
二、描述学生的JavaBean

/**
 * 描述学生的JavaBean
 */
public class StudentBean {
 // 学生姓名
 private String name;
 // 学生性别
 private String gender;
 // 学生年龄
 private int age;
 // 学生电话号码
 private String phone;
 public String toString(){
  StringBuffer sb = new StringBuffer();
  sb.append("姓名:").append(this.name).append(";  ");
  sb.append("性别:").append(gender).append(";  ");
  sb.append("年龄:").append(age).append(";  ");
  sb.append("电话:").append(phone);
  return sb.toString();
 }
 
 /**
  * @return 返回 age。
  */
 public int getAge() {
  return age;
 }
 /**
  * @param age 要设置的 age。
  */
 public void setAge(int age) {
  this.age = age;
 }
 /**
  * @return 返回 gender。
  */
 public String getGender() {
  return gender;
 }
 /**
  * @param gender 要设置的 gender。
  */
 public void setGender(String gender) {
  this.gender = gender;
 }
 /**
  * @return 返回 name。
  */
 public String getName() {
  return name;
 }
 /**
  * @param name 要设置的 name。
  */
 public void setName(String name) {
  this.name = name;
 }
 /**
  * @return 返回 phone。
  */
 public String getPhone() {
  return phone;
 }
 /**
  * @param phone 要设置的 phone。
  */
 public void setPhone(String phone) {
  this.phone = phone;
 }
}三、主程序  import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * 根据对象生成XML文档.
 * 使用Java提供的java.beans.XMLEncoder和java.beans.XMLDecoder类。
 * 这是JDK 1.4以后才出现的类
 */
public class Object2XML {
 /**
  * 对象输出到XML文件
  * @param obj 待输出的对象
  * @param outFileName 目标XML文件的文件名
  * @return 返回输出XML文件的路径
  * @throws FileNotFoundException
  */
 public static String object2XML(Object obj, String outFileName)
   throws FileNotFoundException {
  // 构造输出XML文件的字节输出流
  File outFile = new File(outFileName);
  BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(outFile));
  // 构造一个XML编码器
  XMLEncoder xmlEncoder = new XMLEncoder(bos);
  // 使用XML编码器写对象
  xmlEncoder.writeObject(obj);
  // 关闭编码器
  xmlEncoder.close();
  
  return outFile.getAbsolutePath();
 }
 /**
  * 把XML文件解码成对象
  * @param inFileName 输入的XML文件
  * @return 返回生成的对象
  * @throws FileNotFoundException
  */
 public static Object xml2Object(String inFileName)
   throws FileNotFoundException {
  // 构造输入的XML文件的字节输入流
  BufferedInputStream bis = new BufferedInputStream(new FileInputStream(inFileName));
  // 构造一个XML解码器
  XMLDecoder xmlDecoder = new XMLDecoder(bis);
  // 使用XML解码器读对象
  Object obj = xmlDecoder.readObject();
  // 关闭解码器
  xmlDecoder.close();
  
  return obj;
 }
 public static void main(String[] args) throws IOException {
  // 构造一个StudentBean对象
  StudentBean student = new StudentBean();
  student.setName("wamgwu");
  student.setGender("male");
  student.setAge(15);
  student.setPhone("55556666");
  
  // 将StudentBean对象写到XML文件
  String fileName = "AStudent.xml";
  Object2XML.object2XML(student, fileName);
  // 从XML文件读StudentBean对象
  StudentBean aStudent = (StudentBean)Object2XML.xml2Object(fileName);
  // 输出读到的对象
  System.out.println(aStudent.toString());
 }
}
运行结果:
C:\java>java Object2XML姓名:liuying;  性别:kate;  年龄:25;  电话:44557788

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章