如何将一个对象转换为XML文件输出到本地指定的路径
举例说明:
一、目录结构如下
二、实体类User
package com.huwei.xml;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import java.io.Serializable;
import java.util.Date;
@XmlAccessorType(XmlAccessType.FIELD)
// XML文件中的根标识
@XmlRootElement(name = "User")
// 控制JAXB 绑定类中属性和字段的排序
@XmlType(propOrder = {
"userId",
"userName",
"password",
"birthday",
"money",
})
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {
private static final long serialVersionUID = -519168875829752698L;
// 用户Id
private int userId;
// 用户名
private String userName;
// 用户密码
private String password;
// 用户生日
private Date birthday;
// 用户钱包
private double money;
}
三、实现方法XMLUtil
package com.huwei.xml;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.FileWriter;
import java.io.IOException;
/**
* 封装了XML转换成object,object转换成XML的代码
*
*/
public class XMLUtil {
/**
* 将对象根据路径转换成xml文件
*/
public static void convertToXml(Object obj, String path) {
try {
// 利用jdk中自带的转换类实现
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
// 格式化xml输出的格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
// 将对象转换成输出流形式的xml
// 创建输出流
FileWriter fw = null;
try {
fw = new FileWriter(path);
} catch (IOException e) {
e.printStackTrace();
}
marshaller.marshal(obj, fw);
} catch (JAXBException e) {
e.printStackTrace();
}
}
四、测试类实现Test
package com.huwei.xml;
import java.util.Date;
public class Test {
public static void main(String[] args) {
// 创建需要转换的对象
User user = new User(1, "huahua", "123456", new Date(), 99999);
String path = "D:\\user.xml";
System.out.println("---将对象转换成File类型的xml Start---");
XMLUtil.convertToXml(user, path);
System.out.println("---将对象转换成File类型的xml End---");
System.out.println();
}
}
五、查看结果如图
以上,便实现了将一个对象按照指定路径转换为XML文件的操作。