XMLDecoder/XMLEncoder

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

 

    简单的使用方法:


Java代码  
  1. package com.changyou.xml.test;  
  2.   
  3. import java.io.BufferedInputStream;  
  4. import java.io.FileInputStream;  
  5. import java.io.IOException;  
  6. import java.util.ArrayList;  
  7. import java.util.List;  
  8.   
  9. import com.changyou.myDataItems.model.AnalysisModel;  
  10. import com.changyou.myDataItems.model.ConditionField;  
  11.   
  12. public class TestStudent {  
  13.   
  14.     /**  
  15.      * <P>Title: main </P> 
  16.      * <P>Description: </P> 
  17.      * @param args 
  18.      */  
  19.     public static void main(String[] args) throws IOException {  
  20.         // TODO Auto-generated method stub  
  21.   
  22.         java.io.File file = new java.io.File("student.xml");  
  23.         if(!file.exists()){  
  24.             file.createNewFile();  
  25.         }  
  26.         Student s1 = new Student();  
  27.         s1.setNameString("卞哲");  
  28.         s1.setAge(10);  
  29.           
  30.           
  31.           
  32.         java.io.BufferedOutputStream oop = new java.io.BufferedOutputStream(new java.io.FileOutputStream(file));  
  33.         java.beans.XMLEncoder xe = new java.beans.XMLEncoder(oop);  
  34.         xe.flush();  
  35.         //写入xml  
  36.         xe.writeObject(s1);  
  37.         xe.close();  
  38.         oop.close();  
  39.           
  40.         //读取xml文件  
  41.         java.beans.XMLDecoder xd = new java.beans.XMLDecoder(new BufferedInputStream(new FileInputStream(file)));  
  42.   
  43.         Student s2 = (Student) xd.readObject();  
  44.         xd.close();  
  45.         System.out.println("name: "+s2.getNameString());  
  46.         System.out.println("age :"+s2.getAge());  
  47.     }  
  48.   
  49. }  

 

 

执行结果:

Java代码  
  1. name: 卞哲  
  2. age :10  

 模型类:

 package com.changyou.xml.test;

Java代码  
  1. public class Student {  
  2.   
  3.     private String nameString;  
  4.     private int age;  
  5.     public String getNameString() {  
  6.         return nameString;  
  7.     }  
  8.     public void setNameString(String nameString) {  
  9.         this.nameString = nameString;  
  10.     }  
  11.     public int getAge() {  
  12.         return age;  
  13.     }  
  14.     public void setAge(int age) {  
  15.         this.age = age;  
  16.     }  
  17.       
  18. }  

你可能感兴趣的:(XMLDecoder/XMLEncoder)