根据对象生成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
闽公网安备 35060202000074号