服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java进阶:根据所涉及对象生成xml文档

根据对象生成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
 


扫描关注微信公众号