很方便,很容易,很快,心情很愉快:)
对象转String,String转对象.对象转文件,文件转对象.
/**
* 对象转文件,文件转回对象
*/
@Test
public void testFromFile() throws IOException {
String fileName = "d:/personBObj.xml";
OutputStream out = null;
InputStream input = null;
File file = new File(fileName);
XStream xstream = initXStream();
PersonBObj personBObj = personBObjInit();
try {
// 对象生成XML文件
out = new FileOutputStream(fileName);
xstream.toXML(personBObj, out);
Assert.assertTrue(file.exists());
// XML文件转对象
input = new FileInputStream(fileName);
PersonBObj fromFileBObj = (PersonBObj) xstream.fromXML(input);
Assert.assertEquals("1", fromFileBObj.getContId());
} finally {
out.close();
input.close();
}
if (file.exists()) {
file.delete();
}
}
/**
* 对象转String, String转回对象
*/
@Test
public void testFromString() {
XStream xStream = initXStream();
// 对象转XML
PersonBObj personBObj = personBObjInit();
String xml = xStream.toXML(personBObj);
Assert.assertNotNull(xml);
// XML转对象
PersonBObj fromXMLObj = (PersonBObj) xStream.fromXML(xml);
Assert.assertEquals("1", fromXMLObj.getContId());
}
/**
* 初始化 XStream 对象
*/
private XStream initXStream() {
XStream xstream = new XStream();
// 以下为对象属性起别名
xstream.alias("OrgNameBObj", OrgNameBObj.class);
xstream.alias("ContactBObj", ContactBObj.class);
xstream.alias("IdentifierBObj", IdentifierBObj.class);
xstream.alias("ConteQuivBObj", ConteQuivBObj.class);
xstream.alias("AddressBObj", AddressBObj.class);
xstream.alias("ContactMethodBObj", ContactMethodBObj.class);
xstream.alias("RelativePersonBObj", RelativePersonBObj.class);
xstream.alias("OrgBObj", OrgBObj.class);
xstream.alias("PersonBObj", PersonBObj.class);
xstream.alias("PersonNameBObj", PersonNameBObj.class);
xstream.aliasField("OrgNameBObjs", OrgBObj.class, "orgNameBObjs");
xstream.aliasField("IdentifierBObjs", OrgBObj.class, "identifierBObjs");
xstream.aliasField("ContEquivBObjs", OrgBObj.class, "contEquivBObjs");
xstream.aliasField("AddressBObjs", OrgBObj.class, "addressBObjs");
xstream.aliasField("ContactMethodBObjs", OrgBObj.class, "contactMethodBObjs");
xstream.aliasField("RelativePersonBObjs", OrgBObj.class, "relativePersonBObjs");
xstream.aliasField("PersonNameBObjs", PersonBObj.class, "personNameBObjs");
xstream.aliasField("IdentifierBObjs", PersonBObj.class, "identifierBObjs");
xstream.aliasField("ContEquivBObjs", PersonBObj.class, "contEquivBObjs");
xstream.aliasField("AddressBObjs", PersonBObj.class, "addressBObjs");
xstream.aliasField("ContactMethodBObjs", PersonBObj.class, "contactMethodBObjs");
return xstream;
}