这个例子是参照官网上面的例子写的:
http://xstream.codehaus.org/tutorial.html
1.首先构造想要序列化的类
Person.java:
- publicclassPerson{
- privateStringfirstname;
- privateStringlastname;
- privatePhoneNumberphone;
- privatePhoneNumberfax;
-
- publicPerson(Stringfirstname,Stringlastname){
- super();
- this.firstname=firstname;
- this.lastname=lastname;
- }
- voidsetPhone(PhoneNumberphoneNumber){
- this.phone=phoneNumber;
- }
- voidsetFax(PhoneNumberphoneNumber){
- this.fax=phoneNumber;
- @Override
- publicStringtoString(){
- return"FirstName:"+firstname+",LastName:"+lastname
- +"phone.Code:"+phone.getCode()+"phone.Number:"
- +phone.getNumber()+"fax:"+fax.getCode()+"fax.Number:"
- +fax.getNumber();
- }
PhoneNumber.java:
classPhoneNumber{
- privateintcode;
- privateStringnumber;
- publicPhoneNumber(intcode,Stringnumber){
- this.code=code;
- this.number=number;
- intgetCode(){
- returncode;
- publicStringgetNumber(){
- returnnumber;
- }
2.初始化XStream并序列化和反序列化。
StreamxStream=newXStream();
你需要xstream-[version].jar and xpp3-[version].jar在classpath中。XPP3是一个非常快的XML拉式转换器工具。如果你不想包含这个依赖,你可以使用标准的JAXP DOM转换器来代替。
XStream xStream = new XStream(new DomDriver());//不需要XPP3库
这里要特别说明的是XStream xStream2=new XStream();这样会出错,使用原来的
classXStreamTest{
-
- staticvoidmain(String[]args)throwsFileNotFoundException{
- //InitializingXStream
- XStreamxStream=newXStream();
- xStream.alias("person",Person.class);
- xStream.alias("personnumber",PhoneNumber.class);
-
- Personjoe=newPerson("Joe","Walnes");
- joe.setPhone(newPhoneNumber(123,"1234-456"));
- joe.setFax("9999-999"));
- FileOutputStreamfileOutputStream=newFileOutputStream(newFile("test.xml"));
- xStream.toXML(joe,fileOutputStream);
-
- //DeserializinganobjectbackfromXM
- XStreamxStream2= FileInputStreamfileInputStream=newFileInputStream(newFile("test.xml"));
- Personperson=(Person)xStream.fromXML(fileInputStream);
- System.out.println(person.toString());
- }
看一下运行的结果:
test.xml:
<person>
- firstname>Joe</>
- lastname>Walnesphonecode>123number>1234-456fax>9999-999>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|