posts - 0, comments - 77, trackbacks - 0, articles - 356
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          根據對象生成XML文檔

          Posted on 2007-09-07 15:51 semovy 閱讀(644) 評論(0)  編輯  收藏 所屬分類: JAVA應用

          根據對象生成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>15</int>
             </void>
             <void property="gender">
               <string>male</string>
             </void>
             <void property="name">
               <string>wamgwu</string>
             </void>
             <void property="phone">
               <string>55556666</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姓名:wamgwu;   性別:male;   年齡:15;   電話:55556666

          主站蜘蛛池模板: 扶绥县| 五河县| 郴州市| 纳雍县| 广安市| 镇宁| 铁岭市| 平原县| 井陉县| 苏尼特左旗| 广州市| 团风县| 景宁| 新龙县| 黄浦区| 赫章县| 常山县| 绿春县| 天台县| 泸溪县| 遵化市| 寿宁县| 师宗县| 海城市| 五河县| 会宁县| 阿尔山市| 南阳市| 巫山县| 什邡市| 科尔| 阿坝| 苏尼特右旗| 高平市| 临夏市| 谷城县| 隆回县| 衡阳县| 大宁县| 白银市| 海盐县|