1、Jaxb工具类如下.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import java.io.*;
/**
* @author sundy
* @since 1.8
* 日期: 2019年09月29日 10:11:34
* 描述:
*/
public class JaxbUtil {
private static final Logger logger = LoggerFactory.getLogger(JaxbUtil.class);
/**
* @param t 要生成xml的实体类
* @param file 要生成的文件对象
* @param encoding 数据格式编码
* @return 是否成生成对应的xml
*/
public static <T> boolean createXml(T t,File file,String encoding){
if(file==null) return false;
if(!file.getParentFile().exists()){
boolean mkdirs = file.getParentFile().mkdirs();
logger.debug("mkdirs {} is {}",file.getParent(),mkdirs?"success":"failed");
}
try {
FileWriter fileWriter = new FileWriter(file);
JAXBContext instance = JAXBContext.newInstance(t.getClass());
Marshaller marshaller = instance.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_ENCODING,encoding);
marshaller.marshal(t,fileWriter);
fileWriter.flush();
fileWriter.close();
return true;
} catch (Exception e) {
logger.error(getException(e));
return false;
}
}
/**
* @param t 要生成xml的实体类
*