jaxb读写xml小例子

使用maven构建工程,在pom.xml加入如下依赖:

<dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.1.13</version>
 </dependency>

//一个Person类:

package com.mycomp.jaxb;

import java.io.Serializable;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="person")
public class Person implements Serializable {  
    
    private static final long serialVersionUID = 1L;

    private String name;  
 
    private Integer age;  
 
    private String sex;  
 
    public Person() {  
        
    }  
 
    public Person(String name, Integer age, String sex) {
        super();
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    public String getName() {  
        return name;  
    }  
 
    public void setName(String name) {  
        this.name = name;  
    }  
 
    public Integer getAge() {  
        return age;  
    }  
 
    public void setAge(Integer age) {  
        this.age = age;  
    }  
 
    public String getSex() {  
        return sex;  
    }  
 
    public void setSex(String sex) {  
        this.sex = sex;  
    }  
 
}  

//测试读写方法的主类

package com.mycomp.jaxb;


import java.io.File;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;


public class App {

    //写入xml的方法

    private static void writeXml(Person person,File file) {
        try {
            JAXBContext cxt = JAXBContext.newInstance(Person.class);
            Marshaller marshaller = cxt.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");// 编码格式  
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 是否格式化生成的xml串  
            marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);// 默认false表示xml指令存在  
            marshaller.marshal(person, file);  
        } catch (JAXBException e) {
            e.printStackTrace();
        }
    }
    //读取xml的方法
    private static void readXml(File file){
        try {  
            JAXBContext cxt = JAXBContext.newInstance(Person.class);  
            Unmarshaller unmarshaller = cxt.createUnmarshaller();  
            Person person = (Person)unmarshaller.unmarshal(file);  
                    if (person != null) {  
                        System.out.println(person.getName());
                        System.out.println(person.getAge());
                        System.out.println(person.getSex());
                    }  
        } catch (JAXBException e) {  
            e.printStackTrace();  
        }  
    }
    public static void main( String[] args ){
        File file = new File("d:/test.xml");
        Person person = new Person("张三", 20, "男");
        writeXml(person, file);
        readXml(file);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值