您的位置:首页 > 编程语言 > Java开发

使用Java提供的类生成XML例子

2012-11-09 20:28 344 查看
根据对象生成XML文档.
使用Java提供的java.beans.XMLEncoder和java.beans.XMLDecoder类

一、生成的xml文件如下:AStudent.xml
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.5.0_08" class="java.beans.XMLDecoder">
 <object class="User">
  <void property="age">
   <int>15</int>
  </void>
  <void property="gender">
   <string>male</string>
  </void>
  <void property="name">
   <string>wamgwu</string>
  </void>
  <void property="phone">
   <string>55556666</string>
  </void>
 </object>
</java>
 
二、描述学生的JavaBean
public class User {
    // 学生姓名
    private String name;
    // 学生性别
    private String gender;
    // 学生年龄
    private int age;
    <
4000
span style="color:rgb(63,127,95);">// 学生电话号码
    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();
    }
 
    public int getAge()
{
       return age;
    }
 
    public void setAge(int age)
{
       this.age = age;
    }
 
    public String getGender() {
       return gender;
    }
 
    public void setGender(String
gender) {
       this.gender = gender;
    }
 
    public String getName() {
       return name;
    }
 
    public void setName(String
name) {
       this.name = name;
    }
 
    public String getPhone() {
       return 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(newFileInputStream(
              inFileName));
       // 构造一个XML解码器
       XMLDecoder xmlDecoder = new XMLDecoder(bis);
       // 使用XML解码器读对象
       Object obj = xmlDecoder.readObject();
       // 关闭解码器
       xmlDecoder.close();
 
       return obj;
    }
 
    public static void main(String[]
args) throws IOException {
       // 构造一个User对象
       User student = new User();
       student.setName("wamgwu");
       student.setGender("male");
       student.setAge(15);
       student.setPhone("55556666");
 
       // 将User对象写到XML文件
       String fileName = "AStudent.xml";
       Object2XML.object2XML(student, fileName);
       // 从XML文件读User对象
       User aStudent = (User) Object2XML.xml2Object(fileName);
       // 输出读到的对象
       System.out.println(aStudent.toString());
    }
}

运行结果:

C:/java>java Object2XML姓名:liuying;  性别:kate;  年龄:25;  电话:44557788
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: