`

Xtream的简单例子

 
阅读更多

转载自:http://www.ibm.com/developerworks/cn/xml/x-xstream/

这个例子中

Writer类将类Employee以xml的形式写入文件

Reader类将xml转化为Employee类的实例。

XtreamTest 读取xml文件将xml中的各个节点变为属性。

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;
	}

	@Override
	public 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 object
		XStream xs = new XStream();

		// Write to a file in the file system
		try {
			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 read
			System.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;

	@Override
	public String toString() {
		// This method prints out the values stored in the member variables
		return "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());
	}
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics