Java中object和xml互相转换

Python016

Java中object和xml互相转换,第1张

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

public class Object2XML {

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()

}

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())

}

}

 /** 这里应用了JAVA的Marshall方法

      * 对象转xml

      * 返回xml

      * @param tXLife

      * @return

      */

public static String tXLiftToXML(com.TXLife tXLife){

String xml=""

     try {

ByteArrayOutputStream out = new ByteArrayOutputStream()

JAXBContext jc = JAXBContext

.newInstance("com")  //包的命名空间

Marshaller m = null

synchronized (jc) {

m = jc.createMarshaller()

}

m.setProperty(Marshaller.JAXB_ENCODING, "GBK")

m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE)

m.marshal(tXLife, out)

xml=out.toString() //赋值

} catch (Exception e) {

xml=null

}

     return xml

}

warning: [deprecation] XppDriver(com.thoughtworks.xstream.io.xml.XmlFriendlyReplacer) in com.thoughtworks.xstream.io.xml.XppDriver has been deprecated

已经过时的方法,所以,不会调用此方法。