Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 391|回复: 0

[xml学习]根据对象生成XML文档

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-10 01:58:23 | 显示全部楼层 |阅读模式
    根据对象生成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

    1. /**
    2. * 描述学生的JavaBean
    3. */
    4. public class StudentBean {
    5.         // 学生姓名
    6.         private String name;
    7.         // 学生性别
    8.         private String gender;
    9.         // 学生年龄
    10.         private int age;
    11.         // 学生电话号码
    12.         private String phone;
    13.         public String toString(){
    14.                 StringBuffer sb = new StringBuffer();
    15.                 sb.append("姓名:").append(this.name).append(";  ");
    16.                 sb.append("性别:").append(gender).append(";  ");
    17.                 sb.append("年龄:").append(age).append(";  ");
    18.                 sb.append("电话:").append(phone);
    19.                 return sb.toString();
    20.         }
    21.        
    22.         /**
    23.          * @return 返回 age。
    24.          */
    25.         public int getAge() {
    26.                 return age;
    27.         }

    28.         /**
    29.          * @param age 要设置的 age。
    30.          */
    31.         public void setAge(int age) {
    32.                 this.age = age;
    33.         }

    34.         /**
    35.          * @return 返回 gender。
    36.          */
    37.         public String getGender() {
    38.                 return gender;
    39.         }

    40.         /**
    41.          * @param gender 要设置的 gender。
    42.          */
    43.         public void setGender(String gender) {
    44.                 this.gender = gender;
    45.         }

    46.         /**
    47.          * @return 返回 name。
    48.          */
    49.         public String getName() {
    50.                 return name;
    51.         }

    52.         /**
    53.          * @param name 要设置的 name。
    54.          */
    55.         public void setName(String name) {
    56.                 this.name = name;
    57.         }

    58.         /**
    59.          * @return 返回 phone。
    60.          */
    61.         public String getPhone() {
    62.                 return phone;
    63.         }

    64.         /**
    65.          * @param phone 要设置的 phone。
    66.          */
    67.         public void setPhone(String phone) {
    68.                 this.phone = phone;
    69.         }
    70. }
    71. 三、主程序  
    72. import java.beans.XMLDecoder;
    73. import java.beans.XMLEncoder;
    74. import java.io.BufferedInputStream;
    75. import java.io.BufferedOutputStream;
    76. import java.io.File;
    77. import java.io.FileInputStream;
    78. import java.io.FileNotFoundException;
    79. import java.io.FileOutputStream;
    80. import java.io.IOException;
    81. /**
    82. * 根据对象生成XML文档.
    83. * 使用Java提供的java.beans.XMLEncoder和java.beans.XMLDecoder类。
    84. * 这是JDK 1.4以后才出现的类
    85. */
    86. public class Object2XML {
    87.         /**
    88.          * 对象输出到XML文件
    89.          * @param obj        待输出的对象
    90.          * @param outFileName        目标XML文件的文件名
    91.          * @return        返回输出XML文件的路径
    92.          * @throws FileNotFoundException
    93.          */
    94.         public static String object2XML(Object obj, String outFileName)
    95.                         throws FileNotFoundException {
    96.                 // 构造输出XML文件的字节输出流
    97.                 File outFile = new File(outFileName);
    98.                 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(outFile));

    99.                 // 构造一个XML编码器
    100.                 XMLEncoder xmlEncoder = new XMLEncoder(bos);
    101.                 // 使用XML编码器写对象
    102.                 xmlEncoder.writeObject(obj);
    103.                 // 关闭编码器
    104.                 xmlEncoder.close();
    105.                
    106.                 return outFile.getAbsolutePath();
    107.         }
    108.         /**
    109.          * 把XML文件解码成对象
    110.          * @param inFileName        输入的XML文件
    111.          * @return        返回生成的对象
    112.          * @throws FileNotFoundException
    113.          */
    114.         public static Object xml2Object(String inFileName)
    115.                         throws FileNotFoundException {
    116.                 // 构造输入的XML文件的字节输入流
    117.                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(inFileName));
    118.                 // 构造一个XML解码器
    119.                 XMLDecoder xmlDecoder = new XMLDecoder(bis);
    120.                 // 使用XML解码器读对象
    121.                 Object obj = xmlDecoder.readObject();
    122.                 // 关闭解码器
    123.                 xmlDecoder.close();
    124.                
    125.                 return obj;
    126.         }
    127.         public static void main(String[] args) throws IOException {
    128.                 // 构造一个StudentBean对象
    129.                 StudentBean student = new StudentBean();
    130.                 student.setName("wamgwu");
    131.                 student.setGender("male");
    132.                 student.setAge(15);
    133.                 student.setPhone("55556666");
    134.                
    135.                 // 将StudentBean对象写到XML文件
    136.                 String fileName = "AStudent.xml";
    137.                 Object2XML.object2XML(student, fileName);
    138.                 // 从XML文件读StudentBean对象
    139.                 StudentBean aStudent = (StudentBean)Object2XML.xml2Object(fileName);
    140.                 // 输出读到的对象
    141.                 System.out.println(aStudent.toString());
    142.         }
    143. }
    144. 运行结果:
    145. C:java>java Object2XML
    146. 姓名:wamgwu;  性别:male;  年龄:15;  电话:55556666

    147.                      
    复制代码

       
         
         
          
          

            
          

            
          
         
       

    1.                      
    复制代码

      


    源码下载:http://file.javaxxz.com/2014/10/10/015822718.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-26 18:17 , Processed in 0.354288 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表