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