Reprinted from: http://www.ibm.com/developerworks/cn/xml/x-xstream/
In this example
The writer class writes the class employee into the file in XML format.
Reader class converts XML into an instance of the employee class.
When xtreamtest reads XML files, each node in XML becomes an attribute.
Config. xml
<?xml version="1.0" encoding="UTF-8"?><config><datasource-name>IRIS</datasource-name><ipaddress>9.124.74.85</ipaddress><logfilename>DailyLogApplication.log</logfilename><appender>console</appender></config>
package com.xtream;public class Employee {private String name;private String designation;private String department;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDesignation() {return designation;}public void setDesignation(String designation) {this.designation = designation;}public String getDepartment() {return department;}public void setDepartment(String department) {this.department = department;}@Overridepublic String toString() {return "Name : " + this.name + "\nDesignation : " + this.designation + "\nDepartment : " + this.department;}}
package com.xtream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import com.thoughtworks.xstream.XStream;public class Writer {public static void main(String[] args) {Employee e = new Employee();// Set the properties using the setter methods// Note: This can also be done with a constructor.// Since we want to show that XStream can serialize// even without a constructor, this approach is used.e.setName("Jack");e.setDesignation("Manager");e.setDepartment("Finance");// Serialize the objectXStream xs = new XStream();// Write to a file in the file systemtry {FileOutputStream fs = new FileOutputStream("D:/workspace/TestProject/src/com/xtream/employeedata.xml");xs.toXML(e, fs);} catch (FileNotFoundException e1) {e1.printStackTrace();}}}
package com.xtream;import java.io.FileInputStream;import java.io.FileNotFoundException;import com.thoughtworks.xstream.*;import com.thoughtworks.xstream.io.xml.DomDriver;public class Reader {public static void main(String[] args) {XStream xs = new XStream(new DomDriver());Employee e = new Employee();try {FileInputStream fis = new FileInputStream("D:/workspace/TestProject/src/com/xtream/employeedata.xml");xs.fromXML(fis, e);// print the data from the object that has been readSystem.out.println(e.toString());} catch (FileNotFoundException ex) {ex.printStackTrace();}}}
package com.xtream;import java.io.FileInputStream;import java.io.FileNotFoundException;import com.thoughtworks.xstream.*;import com.thoughtworks.xstream.io.xml.DomDriver;public class XtreamTest {String datasourcename = null;String ipaddress = null;String logfilename = null;String appender = null;@Overridepublic String toString() {// This method prints out the values stored in the member variablesreturn "Datasource Name : " + datasourcename + " \nIP Address : " + ipaddress + " \nLogfilename : " + logfilename + " \nAppender : " + appender;}/** * @param args * @throws FileNotFoundException */public static void main(String[] args) throws FileNotFoundException {XStream xs = new XStream(new DomDriver());FileInputStream fis = new FileInputStream("D:/workspace/TestProject/src/com/xtream/Config.xml");xs.aliasField("datasource-name", XtreamTest.class, "datasourcename");xs.alias("config", XtreamTest.class);XtreamTest r = (XtreamTest) xs.fromXML(fis);System.out.println(r.toString());}}