XMLDecoder/XMLEncoder,今天你用了吗

  对于xml与java 对象的映射有很多方法,不错一般是第三方jar包,比如JAXB,digester等,实际上在JDK中式有方法直接实现的,不过相信绝大部分用Java的人不大留意他们,这绝对是被埋没的好东西,java.beans.XMLDecoder/XMLEncoder简单易用,不需要特殊配置,不需要dtd, xsd文件,对于一般的xml与java 的映射关系是可以使用它们的。

 


    简单的使用方法:

 

 

package com.changyou.xml.test;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.changyou.myDataItems.model.AnalysisModel;
import com.changyou.myDataItems.model.ConditionField;

public class TestStudent {

	/** 
	 * <P>Title: main </P>
	 * <P>Description: </P>
	 * @param args
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub

		java.io.File file = new java.io.File("student.xml");
        if(!file.exists()){
            file.createNewFile();
        }
        Student s1 = new Student();
        s1.setNameString("卞哲");
        s1.setAge(10);
        
        
        
        java.io.BufferedOutputStream oop = new java.io.BufferedOutputStream(new java.io.FileOutputStream(file));
        java.beans.XMLEncoder xe = new java.beans.XMLEncoder(oop);
        xe.flush();
        //写入xml
        xe.writeObject(s1);
        xe.close();
        oop.close();
        
        //读取xml文件
        java.beans.XMLDecoder xd = new java.beans.XMLDecoder(new BufferedInputStream(new FileInputStream(file)));

        Student s2 = (Student) xd.readObject();
        xd.close();
        System.out.println("name: "+s2.getNameString());
        System.out.println("age :"+s2.getAge());
	}

}

 

执行结果:

name: 卞哲
age :10

 模型类:

 package com.changyou.xml.test;

public class Student {

	private String nameString;
	private int age;
	public String getNameString() {
		return nameString;
	}
	public void setNameString(String nameString) {
		this.nameString = nameString;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
}
 

猜你喜欢

转载自biyutong.iteye.com/blog/1555216